Xamarin 中的 WebView 内部深度链接
Deep Linking inside WebView in Xamarin
我尝试在我的 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 来测试我的应用程序。
我通过在 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
中更改主页面的基本功能
我尝试在我的 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 来测试我的应用程序。
我通过在 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