我想在Xamarin中为Android和iOS打开一个网页。代码不起作用。任何人都可以帮我弄清楚什么是错的吗?
对于Android,单击按钮会查看代码,但之后没有任何反应。对于iOS,单击按钮会打开Safari页面,但无法打开页面,并显示消息" Safari无法打开页面,因为服务器停止响应。"
通过的测试arg是:" http://www.google.com"
感谢。
代码:
async Task ExecuteLaunchBrowserAsync(string arg)
{
if (IsBusy)
return;
try
{
await CrossShare.Current.OpenBrowser(arg, new BrowserOptions
{
ChromeShowTitle = true,
ChromeToolbarColor = new ShareColor
{
A = 255,
R = 100,
G = 50,
B = 255
},
UseSafariReaderMode = true,
UseSafariWebViewController = true
});
}
catch
{
}
}
答案 0 :(得分:1)
你只需要使用吹码,它适用于Android和iOS。
void Device.OpenUri(Uri uri)
例如
Device.OpenUri(new Uri("http://example.com"))
要在iOS中工作,请使用Info.plist中的传输安全性
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>
答案 1 :(得分:0)
以上“ Device.OpenUri();”现在已被弃用,因此您必须使用“ Launcher.OpenAsync();”而是这样:
await Launcher.OpenAsync(new Uri("http://example.com"))
请在此处查看文档: https://docs.microsoft.com/en-us/dotnet/api/xamarin.essentials.launcher.openasync