Web ビュー アプリを作成しました。表示されるページには market:// リンクが含まれていますが、それらをクリックすると、プロトコルがサポートされていないというエラーと共に 404 画面が表示されます。ドキュメントを調べてみましたが、これに関連するものは見つかりませんでした。どんな助けでも大歓迎です。
			
			24993 次
		
7 に答える
            43        
        
		
私にとって、HTML は私の管理下にないため、JavaScript は解決策ではありませんでした。したがって、アプリケーション側からこれを制御する必要がある場合は、比較的単純な解決策がありWebViewClientますWebView.setWebViewClient()。WebViewClient実装でオーバーライドする必要があるのは、次にshouldOverrideUrlLoading示すメソッドだけです。
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (url != null && url.startsWith("market://")) {
        view.getContext().startActivity(
            new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
        return true;
    } else {
        return false;
    }
}
私にとってはこれでうまくいきます。
于 2011-04-01T14:19:49.610   に答える
    
    
            1        
        
		
リンクを機能させるには、デバイス/エミュレーターにマーケット アプリをインストールする必要があります。また、アプリはネットワークにアクセスするための許可を要求する必要があります。
UPD: 回避策として、webview 内から Java コードを呼び出すことができます。たとえば、次のようなリンクを生成する場合です。
<a href="javascript:go('market://your.path.to.market.app')">..</a>
go() という名前の JavaScript 関数を定義します。
<script type="text/javascript">
   function go(link) {
     if (handler) {
           handler.go(link);
         } else {
           document.location = link;
         }
   }
</script>
その後、ハンドラー オブジェクトを WebView に渡すことができます。
webview.addJavascriptInterface(new Handler() {
        @Override
        public void go(String marketUrl) {
                         //start market intent here
        }
    },  "handler");
ハンドラー インターフェイスは次のように定義できます。
   public interface Handler{
    public void go(String url);
}
    于 2010-08-27T10:53:47.787   に答える
    
    
            0        
        
		
私のために働く:
webView = (WebView) findViewById(R.id.webView);
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND);
webView.setWebViewClient(new MyWebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("http://myweb.com");
private class MyWebViewClient extends WebViewClient {
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url != null && url.startsWith("whatsapp://")) {
            view.getContext().startActivity(
                    new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
            return true;
        } else {
            return false;
        }
    }
}
    于 2015-02-03T17:01:12.060   に答える
    
    
            -2        
        
		
最も簡単な解決策
 Intent newApp = new Intent(Intent.ACTION_VIEW,  Uri.parse(URL));
startActivity(newApp);
    于 2013-04-23T06:13:51.723   に答える