Xamarin中WebView内部的深层链接

时间:2018-08-22 14:16:14

标签: xamarin webview deep-linking

我正在尝试在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来测试我的应用程序。

1 个答案:

答案 0 :(得分:1)

我通过在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)只是一个基本功能,它可以更改App.xaml.cs

中的MainPage