Приложение веб-браузера - как перехватить намерения URL?

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

 <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 приложение для тестирования браузера запускает и загружает ссылки. Может ли кто-нибудь сказать мне, как я могу установить свое приложение в качестве приложения браузера по умолчанию ИЛИ использовать какое-либо специальное намерение, которое может помочь запустить это действие при нажатии на любой URL?

1
0
631
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Для этого вам нужно определить запуск 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();
}

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

Ответ принят как подходящий

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

        <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>

Другие вопросы по теме