以下URL在iOS 8.3及更低版本上打开,但在iOS 9和iOS 9上不起作用

let instagramURL = NSURL(string: "instagram://app")

为什么URL打不开?

推荐答案

iOS 9对URL方案的处理做了一个小小的改变.你必须将你的应用程序使用Info.plist中的LSApplicationQueriesSchemes键调出的url列入白名单.

请看这里的帖子:http://awkwardhare.com/post/121196006730/quick-take-on-ios-9-url-scheme-changes

主要结论是:

如果您对不在白名单中的URL调用"canOpenURL"方法,它将返回"no",即使安装了已注册处理此方案的应用程序也是如此.将出现"此应用程序不允许查询方案xxx"的系统日志(log)条目.

如果您对不在白名单中的URL调用"openURL"方法,它将以静默方式失败.将出现"此应用程序不允许查询方案xxx"的系统日志(log)条目.

作者还推测,这是操作系统的一个缺陷,苹果将在后续版本中修复.

Ios相关问答推荐

SwiftUI SF Symbols图像:暗模式图像

SWIFT用户界面检测手势的开始和结束

带菜单的选取器不适用于Int32,但适用于Int

我正在try 制作一种 Select 器样式,例如设置中的外观 Select 器

通过 Rosetta 打开模拟器 xcode 14 以修复滚动

SwiftUI:如何为 ScrollView 制作可拉伸(灵活)的粘性标题?

如何根据设备时间设置 Flutter 应用时间线?

通过隐藏和显示视图在 iMessage 应用程序中使用不同的视图

无法同时满足约束 - 没有适当的约束

如何在 Swift 3 中根据 UIImage 的大小/比率调整 UIImageView 的大小?

光标未显示在 UITextView 中

在 Swift 中追加字符串

在 iOS 7 上更改标签栏色调 colored颜色

如何在 UILabel 中找到文本子字符串的 CGRect?

如何在 Swift 中将新单元格插入 UITableView

文本未包含在 swift UI 中

为什么 Xcode 4 不创建任何产品?

UITextView 内容插图

iOS 中的 Google Analytics SDK 3.0 _sqlite3 链接器错误

Twitter api 文本字段值被截断