首页 > 解决方案 > Xamarin 中的 WebView 内部的深度链接

问题描述

我正在尝试在我的 Xamarin 应用程序中使用 Amazon Cognito oauth2,但我遇到了问题。

我有这段代码可以在 WebView 中打开我的 URL:

var browser = new WebView
{
    Source = "https://[domain].auth.[region].amazoncognito.com/oauth2/authorize?client_id=[client_id]&response_type=code&redirect_uri=myapplication://home&scope=[scope]"
}
Content = browser;

我可以在 WebView 中加载页面,但是,当 WebView 尝试加载 redirect_uri (myapplication://home)时,我得到一个 Android 错误页面“WebPage not available”,错误为:net::ERR_UNKNOWN_URL_SCHEME。

此外,当我使用Device.OpenUri([my_uri])一切正常时。

我正在使用 Android 8.0 来测试我的应用程序。

标签: xamarinwebviewdeep-linking

解决方案


我通过在之前添加此代码解决了我的问题Content = browser

browser.Navigating += async (s, e) =>
{
    if (e.Url.StartsWith("myapplication://home"))
    {
        Uri uri = new Uri(e.Url);
        ((App)(Application.Current)).NavigateToLoginPage(uri);
    }
};

NavigateToLoginPage(Uri uri)只是更改 MainPage 的基本功能App.xaml.cs


推荐阅读