2017-03-25 13 views
0

外部URLを読み込むwebviewがあります。このサイトには、クリックされたときにユーザーのデバイスで特定のアプリを起動しようとするリンクがあります。アプリを起動するのではなく、ウェブビューをクラッシュさせる。Webview App LaunchクラッシュWebViewへのリンク

私はこの同じサイトをChromeでテストしました。これは期待どおりに動作します。つまり、アプリケーションを起動します。

webviewで同じ操作をどのように模倣できますか?

+0

エラーログは何ですか? – KAR

答えて

0

WebViewは、Chromeでアプリを起動するために使用しているものであれば、カスタムURIスキームをデフォルトで処理しません。

WebViewClient.shouldOverrideUrlLoading()をオーバーライドしてURLでURIスキームが使用されているかどうかをテストし、アプリを起動して一致する場合はtrueを返し、そうでない場合はfalseを返します。

WebView webView = new WebView(context); 
webView.setWebViewClient(new WebViewClient() { 

     @Override 
     @TargetApi(Build.VERSION_CODES.N) 
     public boolean shouldOverrideUrlLoading (WebView view, WebResourceRequest request) { 
      if (request.getUrl().getScheme().startsWith("myscheme")) { 
       //launch app 

       return true; 
      } else { 
       return false; 
      } 
     } 

     @Override 
     public boolean shouldOverrideUrlLoading (WebView view, String url) { 
      if (Uri.parse(url).getScheme().startsWith("myscheme")) { 
       //launch app 

       return true; 
      } else { 
       return false; 
      } 
     } 
    } 
); 
関連する問題