Приложение веб-браузера - как перехватить URL-адреса? - PullRequest
1 голос
/ 09 мая 2019

У меня есть пользовательское ПЗУ, и у меня нет браузера по умолчанию, кроме WebView Browser Tester . Я разработал свое собственное приложение для веб-браузера (веб-клиент) и установил его в телефон. Теперь я хочу, чтобы любые URL-адреса, когда пользователь нажимал на телефон, мое браузерное приложение перехватывало и загружало этот URL. Вот что я использую в intent_filter

 <intent_filter>
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.BROWSABLE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent_filter>

Но это не работает, и все еще WebView запуск приложения браузера Tester и загрузка ссылок. Может кто-нибудь сказать мне, как я могу установить свое приложение в качестве приложения браузера по умолчанию ИЛИ использовать любое специальное намерение, которое может помочь запустить это действие, нажимая на любой URL?

Ответы [ 2 ]

2 голосов
/ 09 мая 2019

Попробуйте добавить оба фильтра намерений

        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:scheme="http"
                android:host="*"/>
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:scheme="https"
                android:host="*" />
        </intent-filter>
0 голосов
/ 09 мая 2019

Для этого вам необходимо идентифицировать запускающее приложение Activity из Browser, что-то вроде этого:

Intent intent = new Intent();
intent.setComponent(new ComponentName("/*Pass your browser package*/","com.google.android.browser.BrowserActivity /*And pass Browser Activity*/"));
intent.setAction("android.intent.action.VIEW");
intent.addCategory("android.intent.category.BROWSABLE");
Uri uri = Uri.parse(url);
intent.setData(uri);
try
{
    startActivity(intent);
}
catch (Exception e)
{
   e.printStackTrace();
}

Ответ уже доступен на этой ссылке

...