我在我的应用程序中使用了CanOpenUrl方法,它在iOS 8.4上运行但是当我将模拟器更改为9.2时,它无效。我找不到原因。这些是我的代码;
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"deeplinking://"]]){
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"deeplinking://"]];
}
else{
NSLog(@"not working!");
}
任何人都可以帮助我吗?谢谢,哈利尔。
答案 0 :(得分:6)
出于安全目的,Apple在iOS 9 and above
中引入了NSAllowsArbitraryLoads
的新概念,需要
您必须在YES
文件的NSAppTransportSecurity
字典中添加info.plist
密钥至 <key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
。
例如,
ISNULL((LTRIM(RTRIM(Masters.comment1))+';'+LTRIM(RTRIM(masters.comment2))),'')Note1 ,
您可以在apple中看到此文档。例如
答案 1 :(得分:3)
在.plist
应用传输安全设置字典
允许任意加载布尔值是
答案 2 :(得分:1)
请实施应用程序传输协议
添加
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
pist中的
答案 3 :(得分:0)
上述答案是正确的,但不建议允许所有仲裁负载,因为它允许执行所有非安全连接。相反,您可以只允许某些特定的网址在没有ssl证书的情况下工作,这是推荐的方式。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>yourserver.com</key>
<dict>
<!--Include to allow subdomains-->
<key>NSIncludesSubdomains</key>
<true/>
<!--Include to allow HTTP requests-->
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<!--Include to specify minimum TLS version-->
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
</dict>
</dict>
</dict>