【问题标题】:WebView App: Only Open External Links In Mob BrowserWebView 应用程序:仅在 Mob 浏览器中打开外部链接
【发布时间】:2018-07-06 16:43:55
【问题描述】:

有两个条件,一是在App内打开所有链接,二是在移动浏览器中打开所有链接。

但我想在应用程序中打开网站内部链接,在移动浏览器中打开外部链接。

例如: 我的应用是 https://www.123.com 的 WebView,我在我的网站中使用亚马逊附属链接 (https://www.123.com)

现在我希望所有以https://www.123.com 开头的链接在应用程序中打开,所有以https://www.amazon.com 开头的亚马逊附属(外部)链接在移动浏览器中打开。

【问题讨论】:

    标签: android android-webview


    【解决方案1】:

    只需在WebViewClient 中覆盖shouldOverideURLoading。 您将在 webview 中点击链接,然后进行相应的处理。

    WebView webView = findViewById(R.id.webView);
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
            Log.d(TAG, "Request URL is " + request.getUrl());
            if (request.getUrl().toString().equalsIgnoreCase("www.123.com/affiliated")) {
                   //DO SOMETHING
            } else {
                   //DO SOMETHING
            }
            return super.shouldOverrideUrlLoading(view, request);
        }
    });
    webView.loadUrl("https://stackoverflow.com/");
    

    如果有效,请将答案标记为已接受。谢谢。

    【讨论】:

    • 这行不通。在我的应用程序打开并显示我的网站视图后,我希望当 myApp 上的某些链接将在应用程序内打开时,但
    • 请忽略我最后的评论。不起作用。我希望我的应用程序正常打开,并且在我的应用程序打开并显示我的网站视图之后,我希望单击特定 URL 将在移动浏览器中打开,并且所有其他 URL 在应用程序中打开。例如:一个特定的 URL 包含单词“out”。因此,所有包含“out”的网址都会在移动浏览器中打开。
    • 您的评论不够清楚。您想要的应用程序的流程如下。该应用程序打开加载特定网站的 web 视图,例如 www.123.com。您想要的是在 www.123.com 中单击的链接会相应地进行路由。如果我错了,请纠正我。这是你想要的吗?
    • 是的,你是对的。通常,有 2 个选项在 App 中打开网站链接或在移动浏览器中打开。但我想在应用程序中打开网站链接,但在移动浏览器中打开附属链接。实际上,如果关联公司在应用程序中打开链接,则不会给予佣金。
    • @awais 我已经更新了答案,请看一下。
    猜你喜欢
    • 2014-07-12
    • 2018-02-11
    • 2017-08-06
    • 1970-01-01
    • 2015-12-09
    • 2022-08-04
    • 2012-09-24
    • 2019-11-23
    • 2021-06-12
    相关资源
    最近更新 更多