2

アンドロイドアプリの開発を始めたばかりなので、わかりやすいウェブビューアプリのサポートが必要です。だから、これは私の特定の質問です:

ドメインに応じて、デフォルトのブラウザでリンクを開くのではなく、WebViewアプリにリンクを強制的に開くにはどうすればよいですか?

このコードの編集/拡張バージョンを回答に同封してください。

public class WebViewActivity extends Activity {

private WebView webView;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.webview);

    webView = (WebView) findViewById(R.id.webView1);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.loadUrl("www.example.com");

Webビューでコンテンツを開きたいドメインは、たとえば次のとおりです。www.qwerty.com他のすべてのリンクはデフォルトのブラウザで開く必要があります。

よろしくお願いします。

4

2 に答える 2

5

WebViewClient:を作成する必要があります

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

そしてそれをあなたのWebViewように設定します:

webview.setWebViewClient(new MyWebViewClient());
于 2013-01-31T19:21:23.327 に答える
2

カスタムで渡されたURLを評価する必要がありますWebViewClientブール値 shouldOverrideUrlLoadingにはtrueとfalseの値があります。trueの場合、URLをブラウザに送信し、falseの場合、に留まりますWebView

public class MyWebViewClient extends WebViewClient {
@Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (Uri.parse(url).getHost().equals("www.qwerty.com")) {
        /* 
         This is my web site, so do not override; 
         let my WebView load the page
        */
        return false;
    }
       /* 
         Otherwise, the link is not for a page on my site, 
         so launch another Activity that handles URLs
       */
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        startActivity(intent);
        return true;    
    }
}

それからあなたの活動からあなたは確かに新しいと呼びますWebClient

webview.setWebViewClient(new MyWebViewClient());
于 2016-06-17T13:35:24.407 に答える