Переместить существующее веб-приложение в собственное приложение для телефона с помощью обозревателя браузера - программирование
Подтвердить что ты не робот

Переместить существующее веб-приложение в собственное приложение для телефона с помощью обозревателя браузера

Итак, скажем, есть полнофункциональное отзывчивое веб-приложение рубиновых рельсов. Это приложение работает и отлично смотрится на мобильных телефонах. К сожалению, это веб-приложение не видно из магазинов приложений для мобильных телефонов, потому что это не родное приложение. Технически вы можете разместить значок на смартфоне, который открывает браузер, но, очевидно, это не оптимально.

Есть ли способ создать собственное приложение (Android, iPhone), которое по сути является браузером без панели навигации? Эта оболочка браузера просто загрузит веб-приложение и будет вести себя так же, как вы открыли браузер.

Я рассмотрел такие параметры, как Phonegap и Titanium, но похоже, что будет значительная перерегистрация, и для этого очень мало средств.

4b9b3361

Ответ 1

Я действительно не знаю iOS, но делать это в Android будет очень просто.

Во-первых, это ваша деятельность:

package com.example.my_browser;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;

public class MyActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        WebView browser = (WebView)findViewById(R.id.browser);
        browser.loadUrl("http://google.com"); //Replace google.com with you webapp URL
    }
}

Это ваш макет main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
    >
    <WebView
        android:id="@+id/browser"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />
</LinearLayout>

И вам нужно будет запросить разрешение на интернет в AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />

Я просто протестировал это в эмуляторе, и он работает.

Ответ 2

Этот ответ для iOS.

У вас может быть значок вашего веб-сайта на главном экране устройства без написания строки кода (без UIWebView, без встроенного кодирования, без XCode).

  • Загрузите утилиту настройки iPhone из http://www.apple.com/support/iphone/enterprise/
  • Запустите утилиту настройки iPhone и в меню слева выберите "Конфигурационные профили"
  • В разделе "Общие" вашего нового профиля заполните имя (приложение MyWebsite) и идентификатор (com.mycompany.coolapp). Вы также можете добавить название и описание организации.
  • Прокрутите вниз и выберите раздел Веб-клипы.
  • В поле "Ярлык" вы можете ввести имя, которое будет отображаться на главном экране.
  • URL будет URL вашего веб-сайта/веб-приложения.
  • Выберите значок, который будет использоваться в качестве значка на главном экране. Используйте разрешение не менее 114x114 пикселей.
  • Если вы выберете "Полный экран", панель навигации и адресная строка Safari будут скрыты при запуске вашего веб-приложения, поэтому у вас может быть реальное "приложение".
  • Нажмите кнопку "Экспорт". Вы можете решить, подписать ли ваш профиль (будет отображаться конечным пользователем при установке вашего профиля).
  • Сохраните файл .mobileconfig и загрузите его на свой веб-сервер или отправьте конечным пользователям по почте.
  • Когда конечный пользователь открывает файл .mobileconfig на своем устройстве, система попросит его установить профиль конфигурации. После установки будет создан значок главного экрана, который указывает на ваш веб-сайт.

Обновление с 2017 года Утилита iPhone Configuration была заменена Apple Configurator, которую вы можете скачать бесплатно из App Store. Вы можете создать новый профиль конфигурации так же, как описано для Apple Configurator, выбрав File → New Profile в приложении.

Ответ 3

изменить 2
Как сказал @MrTJ в комментариях. Очевидно, Apple не позволит вам иметь простое приложение для веб-обложки. Таким образом, вашими единственными параметрами будут перенос Ruby, как описано в остальном моем ответе, портирование приложения изначально или создание веб-приложения, такого как @MrTJ, в его ответе. Перенос его изначально, поддерживаемый веб-службами RESTlike, вероятно, будет лучшим решением. Веб-приложения хороши, но родные приложения обычно приятнее. Это зависит от того, какой пользовательский интерфейс вы хотите предоставить.
end edit 2

изменить 1
Мне нужно внимательно прочитать. Я ответил на ваш вопрос, предполагая, что вы хотите внедрить приложение, без необходимости доступа в Интернет. Если это НЕ, что вы пытаетесь сделать, то это определенно возможно.

Просто создайте приложение с веб-просмотром и загрузите базовый URL-адрес для сайта. Вы, вероятно, захотите сделать специальную версию сайта, на которой ALWAYS есть кнопки с кнопками и т.д., Поэтому пользователь никогда не сможет застрять в углу вашего сайта (так как вы хотите, чтобы навигатор был скрыт).

Кроме того, лично я бы не сделал этого, вы можете, но вы, вероятно, не должны. Вам нужно будет обработать, что делать, если у пользователя нет подключения к Интернету. И вы можете сделать их менее счастливыми, когда они (потенциально) заплатили за приложение, которое они не могут использовать повсюду. Родные приложения, как правило, продают/выполняют намного лучше.
end edit 1

Моя личная реакция на этот вопрос

Прохладный вопрос. Лично я не поклонник или Ruby или Rails (я немного больше из Python, но Python на самом деле, почему я знаю что-нибудь об этой ситуации), но это довольно крутая проблема.

Вопросы, чтобы спросить себя

Возможно ли это? Вероятно

Это хорошая идея? Вероятно, не

Это будет стоить усилий? Вероятно, не

И самое главное, Apple позволит вам продать его?.... Возможно, но для чего-то подобного вы не узнаете, пока не попытаетесь...

Что вам нужно

  • WebView, который использует протокол для разговора с вашим родным приложением. Это было бы похоже на хак-тег URL-адреса, используемый для общения с iFrame в браузере или с протоколом, который PhoneGap использует для связи с ним. WebView

  • Встроенная версия Ruby Interpreter. Люди делали это на iOS с Python и JavascriptCore переводчиков. Некоторые люди попытаются сказать вам, что Apple не позволит вам это сделать, но это уже не так. Вам нужно будет скомпилировать Ruby специально для iOS, это, вероятно, будет раздражать, но я уверен, что если вы основываете свою реализацию на реализациях Python/Javascript, вы можете в конечном итоге заставить ее работать.

изменить
Еще один вопрос/ответ SO, имеющий отношение к этому ответу
Вставить механизм JavaScript в приложение iOS
end edit

  1. Встроенная версия Rails... Удачи:)

  2. Метод запуска приложения Rails без веб-сервера (вы, вероятно, не можете запускать apache локально на iPhone (было бы сложно и, вероятно, сбой сразу), и определенно не на Android). Вам нужно либо вызывать каждое представление вручную каким-либо образом, наводя вывод на строку или файл, и загружать эту строку (HTML) или файл в WebView

  3. Способ запуска навигации в приложении Rails. Для этого потребуется захват ссылок из WebView (вы можете наблюдать за изменением URL-адреса в iOS) и запускать правильный просмотр Rails для создания своего HTML-кода.

Проблемы

  • Ruby и Rails оба ОЧЕНЬ ТЯЖЕЛО. Большинство реализаций, которые я видел, требуют, по крайней мере, 256 МБ ОЗУ, iOS мгновенно убивает ваше приложение, если оно пытается использовать эту большую память при запуске. Android, вероятно, будет обрабатывать его гораздо менее изящно и просто неожиданно сбой в какой-то момент запуска приложения.

  • Android не запускает собственный скомпилированный код. Это означает, что вам нужно будет запустить JRuby, который оставит вас с интерпретированным языком, работающим на интерпретируемом языке (читайте как Медленно как ад на мобильном устройстве).

  • Это потребует написания БОЛЬШЕ Ruby, некоторого Javascript и MORE Java или Objective-C. Другими словами, Не. Выясните, что делает ваше приложение, и переносите его.

Ключевое обучение

Это, вероятно, потребует больше усилий, чем любой разумный разработчик когда-либо захочет потратить на "простое веб-приложение". Вам будет намного лучше изучать естественное развитие, так как это потребует, чтобы эта работа была выполнена в любом случае.

Ответ 4

Да, для iOS просто загрузите полноэкранный режим UIWebView и измените текущий URL-адрес UIWebView на любое местоположение вашего веб-приложения. запуск UIWebview с определенным URL

Я ничего не знаю об андроиде, но, видимо, это тот же процесс... Здесь ya go: Как установить url на WebView из файла макета xml на Android?


Для связи между приложением iOS и вашим сайтом вы можете использовать stringByEvaluatingJavaScriptFromString, упомянутый здесь: Передача Javascript Variable на Objective-C

Для этого с Android обратитесь к другим ответам на этот вопрос, где они уже указали код в своем ответе.