当前位置:  开发笔记 > IOS > 正文

即使未安装应用,canOpenURL对于自定义URL方案也返回true

如何解决《即使未安装应用,canOpenURL对于自定义URL方案也返回true》经验,为你挑选了1个好方法。

如果使用SDK 9.0及更高版本的应用程序,则必须确保将要打开的应用程序方案添加到主应用程序的info.plist中:

如果不将以上内容添加到主应用程序的info.plist中(相应地更改方案),canOpenURL将始终返回NO。除非使用iOS SDK低于9.0的应用,否则不会发生。

另外,请使用以下逻辑,因为这样做更安全:

NSString * urlStr = @"mycustomurl://"; 
NSURL * url = [NSURL URLWithString:urlStr];

if ([[UIApplication sharedApplication] canOpenURL:url]) {
    if([[UIApplication sharedApplication] openURL:url]) {
       // App opened
    } else {
       // App not opened
    }
} else {
    // Can not open URL
}

我建议的最后一项检查是在设备中打开Safari应用,在url字段中输入应用方案网址字符串,然后按Enter。从结果中总结如何进行。



1> Roy K..:

如果使用SDK 9.0及更高版本的应用程序,则必须确保将要打开的应用程序方案添加到主应用程序的info.plist中:

如果不将以上内容添加到主应用程序的info.plist中(相应地更改方案),canOpenURL将始终返回NO。除非使用iOS SDK低于9.0的应用,否则不会发生。

另外,请使用以下逻辑,因为这样做更安全:

NSString * urlStr = @"mycustomurl://"; 
NSURL * url = [NSURL URLWithString:urlStr];

if ([[UIApplication sharedApplication] canOpenURL:url]) {
    if([[UIApplication sharedApplication] openURL:url]) {
       // App opened
    } else {
       // App not opened
    }
} else {
    // Can not open URL
}

我建议的最后一项检查是在设备中打开Safari应用,在url字段中输入应用方案网址字符串,然后按Enter。从结果中总结如何进行。


@stuart_gunn如果您在设备中打开Safari浏览器应用程序,然后在url字段(appscheme://)中键入应用程序方案url字符串,然后按Enter,它是否会打开该应用程序?
如此看来,URL方案已为两个应用程序(呼叫方和被呼叫方)注册。在Safari中输入方案会打开错误的应用。谢谢你的帮助。感觉有点愚蠢。
推荐阅读
雯颜哥_135
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有