質問

私はロード外部のURLによっ WebView.現在私が必要であることは、ユーザがクリックのリンク先のページの読み込まれたもので仕事のように通常のブラウザのリンクと同じ WebView.そのデフォルトのブラウザ上のロイヤリティ料金ページにありますか?

していきます。今まで使用すれば問題ありません。い忘れられたの?

役に立ちましたか?

解決

使用している場合は、 WebView い相手に自分をクリックされない場合、デフォルトのAndroid活動しています。

を監視できるイベント WebView を使用 WebViewClient.方法にしたいです shouldOverrideUrlLoading().することができ自分の行動が特定のURLを選択します。

設定する WebViewClientWebView を使用 setWebViewClient() 方法.

を見れば WebView サンプルのSDK ありえなのだと考えている。でき:

private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}

他のヒント

あなたは、URLのロード方法をトリガしませんリダイレクトを取得する場合

は、いくつかのケースでは、あなたはonLoadResourceのオーバーライドが必要になる場合があります。この場合には、私は次のことを試してみました。

@Override
public void onLoadResource(WebView view, String url)
{
    if (url.equals("http://redirectexample.com"))
    {
        //do your own thing here
    }
    else
    {
        super.onLoadResource(view, url);
    }           
}

あなたのコードでは、この2行を追加します -

mWebView.setWebChromeClient(new WebChromeClient()); 
mWebView.setWebViewClient(new WebViewClient());
あなたはboolean shouldOverrideUrlLoading(WebView view, String url)を使用する必要があり、新たなデバイスをサポートしている場合は、

メソッドboolean shouldOverrideUrlLoading (WebView view, WebResourceRequest request)は、API 24で廃止されました。

あなたはこのような何かを行うことによって、両方を使用することができます:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    newsItem.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            view.loadUrl(request.getUrl().toString());
            return true;
        }
    });
} else {
    newsItem.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    });
}

Arulx Zの答えは私が探していたまさにでした。

私は(したがって、外部のWebブラウザを起動していない)に関係なく、クリックされたハイパーリンクのアプリ内のWebブラウジングを保つため、recyclerviewとwebviewsにナビゲーションドロワーでアプリを書いています。

:そのためには、次のコード2行を置くことで十分であろう

mWebView.setWebChromeClient(new WebChromeClient()); mWebView.setWebViewClient(new WebViewClient());

正確にあなたのWebViewの文の下ます。

ここに私の実装WebViewのコードの例があります:

public class WebView1 extends AppCompatActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    WebView wv = (WebView) findViewById(R.id.wv1); //webview statement
    wv.setWebViewClient(new WebViewClient());    //the lines of code added
    wv.setWebChromeClient(new WebChromeClient()); //same as above

    wv.loadUrl("http://www.google.com");
}}

この方法では、ウェブサイトでクリックしたすべてのリンクがあなたのWebViewの内側にロードされます。

(すべてのSDKの更新でAndroidのメーカー1.2.2を使用)
scroll top