2

私の Android アプリには、カスタム WebViewClient を持つ WebView 要素があります。経由でエラー ページを表示しonReceivedError()、 に対して false を返しますshouldOverrideUrlLoading()

SOに関する他の多くの投稿で説明されているように、WebView自体ではなく、WebViewが外部ブラウザーでリンクを開くようになりました。ただし、これは機能しません。WebView 内のすべてのリンクを引き続き開きます。

コンテンツをロードするのではなく、HTML文字列loadUrl()を介して渡すという事実と何か関係があるのでしょうか?loadData()

4

1 に答える 1

4

インテントを使用して、外部ブラウザでURLを起動する必要があります。メソッドshouldOverrideUrlLoading()は良い候補です:

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    Context context = view.getContext();
    Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

    // Launch default browser
    context.startActivity(browserIntent);

    return true;
}
于 2013-02-10T16:00:38.450 に答える