Как я могу дать пользователю простой способ вернуться из сеанса WebKit в моем приложении Android? - PullRequest
0 голосов
/ 26 апреля 2011

Моему Android-приложению нужно переключаться между клиентским кодом и сеансами WebKit. Во время определенных операций я перенаправляю пользователя на разные веб-сайты, которые загружаю через WebKit. Я хочу предоставить пользователю простой способ выйти из сеанса WebKit и вернуться к своему приложению, чтобы выполнить другую операцию или изменить последнюю. Я не хочу полагаться на кнопку «НАЗАД» в браузере, потому что это может быть бременем для пользователя, если он выполнил какую-либо значительную навигацию по страницам на веб-сайте и вынужден вернуться из сеанса к моему приложению.

Я бы хотел разместить кнопку или ссылку там, где пользователь мог бы щелкнуть всякий раз, когда он захочет вернуться в мое приложение. Обратите внимание, я не спрашиваю, могу ли я внедрить элементы в сеанс WebKit, потому что я почти уверен, что WebKit не допустит этого.

Есть идеи? Также приветствуются любые советы по ведению информации о состоянии между запусками WebKit. Я знаю о параметре Bundle конструктора Activity, но если есть какие-то тонкие нюансы, я должен остерегаться, просто дайте мне знать.

- Рошлер

1 Ответ

1 голос
/ 26 апреля 2011

(Когда вы говорите «WebKit», я предполагаю, что вы имеете в виду системный браузер по умолчанию, а не встраиваемый класс WebView.)

Это можно сделать с помощью пользовательских схем URL.Пример пользовательской схемы URl:

myapp: // somedata: someotherdata

Вы можете зарегистрировать свое приложение для запуска по этой схеме:

<activity ....>
    <intent-filter>
        <data android:scheme="myapp"/>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
    </intent-filter>
</activity>

Тогда в васбраузер просто ссылается на myapp://, как если бы вы использовали любой другой http:// URL (через кнопку, ссылку, javascript ..).Вы также можете добавить некоторые данные после схемы, например, myapp://some:data, и вы можете получить их в своем приложении через getIntent().getData().

Примечание: пользовательские схемы являются глобальными - убедитесь, что вы не конфликтуете с каким-либо другим приложением.Лучше всего использовать полное имя пакета com.mypackage.myapp://.

...