2012-06-28 3 views
4

У меня есть HTML-файл, который запускает приложение, если я его открываю в собственном браузере Android , но когда я пытаюсь открыть его в WebView, он не может запустить это приложение , и отображается «Веб-страница недоступна». Я думаю, что мой WebView не способен обрабатывать схему «my.special.scheme: //», определенную для приложения.Запуск пользовательского приложения для Android из WebView

Я читал Launching an Android Application from the Browser, но не содержит информации о запуске приложения из WebView.

ответ

1

Я не уверен, но я считаю, что WebView просто не обрабатывает настраиваемые схемы URI.

Чтобы обойти эту проблему, чтобы переопределить WebViewClient.shouldOverrideUrlLoading() и вручную проверить, если URL использует вашу схему URI, запуск вашего приложения и возвращение true, если он соответствует, в противном случае возвращение false.

4

Это правда, ссылки на пользовательскую схему URI не загружают автоматически запуск приложений из WebView.

Что вам нужно сделать, это добавить пользовательский WebViewClient к вашему WebView:

webView.setWebViewClient(new CustomWebViewClient()); 

, а затем в shouldOverrideUrlLoading(), имеют следующий код:

public boolean shouldOverrideUrlLoading(final WebView webView, final String url) { 

    if (url.startsWith("my.special.scheme://")) { 

     final Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 

     // The following flags launch the app outside the current app 
     intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); 

     activity.startActivity(intent); 

     return true; 
    } 

    return false; 
}