【问题标题】:Why does OpenUrl() is not being called in iOS 13 but it does in iOS 12.(Xamarin.ios)为什么在 iOS 13 中没有调用 OpenUrl(),但在 iOS 12 中却调用了。(Xamarin.ios)
【发布时间】:2020-02-27 12:36:57
【问题描述】:

我们正在开发 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 中这个功能被移到了 Scene Delegate。
  • 嗨,我已经在 Scene Delegate 中实现了 OpenUrlContexts() 并且也被调用了,但是我无法访问 Url 属性。请在下面检查我的代码。 [Export("scene:openURLContexts:")] public void OpenUrlContexts(UIScene scene, NSSet<UIOpenUrlContext> urlContexts) { foreach (var urlContextData in urlContexts) { var urlString = urlContextData.Url; clsXamrinAuthSample.Auth.OnPageLoading(urlString); } }
  • @SumitMishra 嗨,你解决了吗?如果回答对你有帮助,记得有空时标记一下:-)

标签: ios xamarin.ios


【解决方案1】:

从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 
    }
}

【讨论】:

  • 我的项目中没有 SceneDelegate.cs 文件。我需要自己添加吗?怎么样?
  • @Rugbrød 您需要手动添加。看看这个讨论:stackoverflow.com/questions/61783842/…。如果回答有帮助,记得给它投票。
  • @Rugbrød 嗨,它只适用于 Xamarin iOS 项目。
  • @JuniorJiang-MSFT 在 Xamarin.Forms 项目中,如上所述添加新的 AppDelegate 没有对 LoadApplication 或 base.FinishedLaunching 的引用。
  • @Xamtastic 嗨,您需要确保新的 AppDelegate 继承表单 global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
猜你喜欢
  • 1970-01-01
  • 2012-06-01
  • 1970-01-01
  • 2021-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-21
  • 2020-01-15
相关资源
最近更新 更多