【问题标题】:Open External Links inside Webview在 Webview 中打开外部链接
【发布时间】:2018-09-17 00:43:15
【问题描述】:

我想用POST 数据打开一个webview。所以我这样做:

webView = (WebView) findViewById(R.id.dashboard);
String url = "http://www.example.test";
String postData = "json=" + JSON;
webView.postUrl(url, postData.getBytes());

所以现在当我启动这个webview时,点击链接会打开设备的默认浏览器,有没有办法坚持webview打开链接?
我进行了研究,但所有这些都是针对GET 请求的。

【问题讨论】:

  • I researched but all of them are for GET requests. 没关系,都一样

标签: android android-studio webview android-webview


【解决方案1】:

所以我发现GET 和POST 请求的解决方案几乎相同。

    webView = (WebView) findViewById(R.id.dashboard);

    String url = "http://www.example.test";
    String postData = "json=" + JSON;

    webView.postUrl(url,postData.getBytes());

    webView.setWebViewClient(new WebViewClient() {
        public boolean shouldOverrideUrlLoading(WebView viewx, String urlx) {
            viewx.loadUrl(urlx);
            return false;
        }
    });

【讨论】:

    【解决方案2】:

    这是在 Kotlin 中的操作方法:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                myWebView.webViewClient = object : WebViewClient() {
                    override fun shouldOverrideUrlLoading(
                        view: WebView,
                        request: WebResourceRequest
                    ): Boolean {
                        view.loadUrl(request.url.toString())
                        return false
                    }
                }
            } else {
                myWebView.webViewClient = object : WebViewClient() {
                    override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
                        view?.loadUrl(url.toString())
                        return false
                    }
                }
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      • 2018-02-11
      • 2017-08-06
      • 2021-12-27
      • 1970-01-01
      相关资源
      最近更新 更多