如何在 Xamarin 中打开默认浏览器?
Posted
技术标签:
【中文标题】如何在 Xamarin 中打开默认浏览器?【英文标题】:How to open default browser in Xamarin? 【发布时间】:2018-03-18 20:28:52 【问题描述】:我想在 Xamarin 中为 android 和 ios 打开一个网页,但代码不起作用。谁能帮我找出问题所在?
对于 Android,单击按钮会遍历代码,但之后什么也没有发生。对于 iOS,单击该按钮会打开一个 Safari 页面,但它无法打开该页面,并显示一条消息“Safari 无法打开该页面,因为服务器停止响应。”
通过的测试参数是:“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
【问题讨论】:
你试过Device.OpenUri()吗? 谢谢。我使用的是 NuGet 插件,但这让我很难过。你的方法好多了。感谢分享。 【参考方案1】:你只需要使用blow code,它适用于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>
http://i.imgur.com/qqP7KHp.gif
【讨论】:
正是我需要的。谢谢。 Device 不是 Xamarin 命名空间或我项目中的任何其他命名空间中的类。你在哪里找到的? @BlueMonkMN 它仅来自 xamarin.forms。 Xamarin.Forms.Device.OpenUri()【参考方案2】:上面的“Device.OpenUri();”现在已被弃用,因此您必须使用“Launcher.OpenAsync();”而是这样:
await Launcher.OpenAsync(new Uri("http://example.com"))
请在此处查看文档: https://docs.microsoft.com/en-us/dotnet/api/xamarin.essentials.launcher.openasync
【讨论】:
以上是关于如何在 Xamarin 中打开默认浏览器?的主要内容,如果未能解决你的问题,请参考以下文章