【问题标题】:WebView : special link opened in external browser?WebView:在外部浏览器中打开的特殊链接?
【发布时间】:2021-05-21 14:02:54
【问题描述】:

如何更改我的代码以在外部浏览器中打开链接 (https://mio.it)?而其他链接如果在 webview 中打开就可以了

    webView = (WebView) findViewById(R.id.webview);
    intent = getIntent();
    sliderlink = intent.getStringExtra("sliderlink");
    Log.e("Data Received is", sliderlink);

    WebSettings webSettings = webView.getSettings();
    webSettings.setSavePassword(true);
    webSettings.setJavaScriptEnabled(true);


    if (!sliderlink.startsWith("http://") && !sliderlink.startsWith("https://"))
        sliderlink = "https://" + sliderlink;

    CookieManager.getInstance().setAcceptCookie(true);
    webSettings.setAllowFileAccess(true);
    webSettings.setPluginState(WebSettings.PluginState.ON);
    webView.loadUrl(sliderlink);




  

【问题讨论】:

    标签: android browser webview


    【解决方案1】:

    为您的 WebView 设置自定义 WebView 客户端。在那个clied override shouldOverrideUrlLoading中,这个方法会接收到需要加载的URL。

    检查它是否匹配https://mio.it,然后返回true,否则返回false。返回 true 将允许系统在设备中安装的任何其他应用程序中启动 URL,而 false 将允许 WebView 继续加载 URL。

    查看以下 Kotlin 代码:

            wv.webViewClient = object : WebViewClient() {
                override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
                    if(url.contains("https://mio.it"))
                     return true
                    return false
                }
    
                override fun shouldOverrideUrlLoading(view: WebView, request: WebResourceRequest): Boolean {
                  if(request.url.toString().contains("https://mio.it"))
                     return true
                    return false
                }
    
            }
    

    【讨论】:

      猜你喜欢
      • 2014-07-12
      • 2018-02-11
      • 2017-08-06
      • 1970-01-01
      • 2015-12-09
      • 2012-09-24
      • 2019-11-23
      • 2021-06-12
      相关资源
      最近更新 更多