为什么未在iOS 13中调用OpenUrl(),但在iOS 12中被调用(Xamarin.ios)

问题描述 投票:0回答:1

我们正在xamarin.ios本机应用程序开发中。我们已经实现了OAuth重定向,并在AppDelegate类中实现了OpenUrl()。它在iOS 12中正常运行,但在iOS 13或更高版本的真实设备和模拟器中均无效。

public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options)
        {
            // Convert iOS NSUrl to C#/netxf/BCL System.Uri - common API
            var uri_netfx = new Uri(url.AbsoluteString);

            clsXamrinAuthSample.Auth.OnPageLoading(uri_netfx);

            return true;
        }

我们需要一些帮助。

ios xamarin.ios
1个回答
0
投票

[从iOS 13开始,您需要在SceneDelegate.cs文件中使用openUrl进行详细说明,并在OpenUrlContexts方法中编写代码。

我无法访问网址属性。

关于访问Url属性,您可以从AnyObject元素中获取它,如下所示。

[Export("scene:openURLContexts:")] 
public void OpenUrlContexts(UIScene scene, NSSet<UIOpenUrlContext> urlContexts) 
{
    Console.WriteLine("URL property =====" + urlContexts.AnyObject.Url);
    var urlString = urlContexts.AnyObject.Url;
    if( urlString.Equals("wide://"))
    {
        // Run code 
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.