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

MrP*_*mer 2 android xamarin.ios xamarin.android ios xamarin

我想在 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
        {
        }
    }
Run Code Online (Sandbox Code Playgroud)

小智 7

您只需要使用下面的代码,它适用于 Android 和 iOS。

void Device.OpenUri(Uri uri)
Run Code Online (Sandbox Code Playgroud)

例如。

Device.OpenUri(new Uri("http://example.com"))
Run Code Online (Sandbox Code Playgroud)

要在 iOS 中工作,请使用 Info.plist 中的传输安全性

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key><true/>
</dict>
Run Code Online (Sandbox Code Playgroud)

https://i.stack.imgur.com/bsaQm.gif