如何在Xamarin中打开默认浏览器?

时间:2017-10-07 01:19:24

标签: android ios xamarin xamarin.ios xamarin.android

我想在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
        {
        }
    }

2 个答案:

答案 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>

http://i.imgur.com/qqP7KHp.gif

答案 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