为什么OpenUrl()在iOS 13中没有被调用,但在iOS 12中却被调用。(Xamarin.iOS)

为什么OpenUrl()在iOS 13中没有被调用,但在iOS 12中却被调用。(Xamarin.iOS),ios,xamarin.ios,Ios,Xamarin.ios,我们正在开发xamarin.ios原生应用程序。我们已经在AppDelegate类中实现了OAuth重定向和OpenUrl()。它在iOS 12中工作,但在iOS 13或更高版本(包括真实设备和模拟器)中不工作 public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options) { // Convert iOS NSUrl to C#/netxf/BCL Syst

我们正在开发xamarin.ios原生应用程序。我们已经在AppDelegate类中实现了OAuth重定向和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 13开始,您需要在
SceneDelegate.cs
文件中详细介绍openUrl,使用
OpenUrlContexts
方法编写代码

我无法访问Url属性

关于访问
Url
proerty,您可以从
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 
    }
}
[导出(“场景:openURLContexts:”)]
public void OpenUrlContexts(UIScene场景、NSSet urlContexts)
{
Console.WriteLine(“URL属性===”+urlContexts.AnyObject.URL);
var urlString=urlContexts.AnyObject.Url;
if(urlString.Equals(“宽:/”)
{
//运行代码
}
}

因为在iOS 13中,此功能被移动到场景代理。您好,我在场景代理中实现了OpenUrlContexts(),也被调用了,但我无法访问Url属性。请检查我下面的代码<代码>[Export(“场景:openURLContexts:”)]public void openURLContexts(UIScene场景,NSSet urlContexts){foreach(urlContexts中的var urlContextData){var urlString=urlContextData.Url;clsXamrinAuthSample.Auth.OnPageLoading(urlString);}}@SumitMishra嗨,你解决了吗?如果答案有帮助,记得在你有时间时标记它:-)我的项目中没有SceneDelegate.cs文件。我需要自己添加吗?如何添加?@Rugbrød您需要手动添加它。请看以下讨论:。如果答案有帮助,记得投票支持它。@Rugbrød Hi,它只适用于Xamarin iOS项目。@JuniorJiang MSFT在Xamarin.Forms项目中,如上添加新AppDelegate没有对LoadApplication或base.FinishedLaunching的引用。@Xamtastic Hi,您需要确保新的AppDelegate继承表单
global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate