如何在 WebView 应用程序上启用深度链接

How to Enable Deep-Linking on a WebView Application

我的应用程序是一个 WebView 应用程序,我已经设置了 URL Intent Filters,因此当单击域为“riftacademy.org”的 link 时,它会打开我的应用程序。

现在我正在尝试在 WebView 应用程序中实现深度 linking...

我在这里的帖子中看到了类似的内容How to enable deep-linking in WebView on Android app?

但与上面使用自定义 URI Scheme 打开应用程序不同的是,我想在我的 WebView 中使用我的域名“riftacademy.org”实现深度 linking。 13=]

在这种情况下,当单击 link(例如 https://riftacademy.org/login or https://riftacademy.org/register)时,它应该打开应用程序并转到与 link 匹配的页面。但在这种情况下,它打开应用程序但只加载主页 riftacademy.org...

我希望 WebView 应用程序能够在应用程序打开后加载 links,类似于 YouTube 和 Facebook 处理 links

的方式

WebView中是否可以使用域名实现Deep-Linking?

我猜测可能需要编辑的地方的片段

newWebView.setWebViewClient(new WebViewClient() {
                    @Override
                    public boolean shouldOverrideUrlLoading(WebView view, String url) {
                        Intent browserIntent = new Intent(Intent.ACTION_VIEW);
                        browserIntent.setData(Uri.parse(url));
                        startActivity(browserIntent);
                        return true;
                    }
                });
                return true;
            }
        });

提前致谢

因此,在来自 https://webintoapp.com 的 Ron 的帮助下,我已经能够解决这个问题......这是通过使用 URI Intent Filters 并将以下代码放在 MainActivity.java 和 AndroidManifest.xml

我将此添加到我 MainActivity.java 的 OnCreate 方法中...网站名称应添加在 else{mWebView.loadUrL[= 之后13=]

SetWebView(mWebView);
        Intent intent = getIntent();
        Uri data = intent.getData();
        if(data != null) {
            //Load the deep-link url:
            String url = intent.getDataString();
            mWebView.loadUrl(url);
        }
        else
        {
            mWebView.loadUrl("https://riftacademy.org/");
        }

这对我的 MainActivity.xml... android:host 也应该是网站 URL

<activity android:name=".MainActivity">
            <intent-filter android:label="The Title">
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data
                    android:scheme="https"
                    android:host="riftacademy.org" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

                <data
                    android:scheme="http"
                    android:host="riftacademy.org" />

这将使 WebView 应用能够加载所有类型的链接,只要链接以网站的​​默认 URL 开头