从 ios 框架启动应用程序或在 safari 中打开 link
launching app or opening link in safari from ios framework
我正在开发一个 ios 框架(可以使用 cocoapods 安装)。当调用此框架的方法时,它将在 safari 上打开一个 url。如果其他一些应用能够使用通用 link 处理 url,那么它将启动该应用。
我试图调用(在 ios 9.3 模拟器中,目标部署 ios 8.0
[[UIApplication sharedApplication] openURL:url];
以上代码在任何 ios 应用程序中都能完美运行。但是,当我将相同的代码放在另一个应用程序中包含的框架中时,它会出现异常和应用程序崩溃。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString scheme]: unrecognized selector sent to instance 0x7fc070717e00'
框架内部的工作方式是否不同?什么是正确的方法。在此示例中,我尝试打开常规 https link.
谢谢
由于这可能对其他人有用,以下是导致问题的原因:
[[UIApplication sharedApplication] openURL:url];
被调用的参数实际上不是 NSURL
,而是 NSString
,因此在此过程中抛出了 NSInvalidArgumentException
- 在描述中有提示类型错误。
编译器至少应该在这里发出警告。
编辑之前提到了另一种方法:
[[UIApplication sharedApplication] openURL:url options:nil completionHandler:^(BOOL success) {
NSLog(@"opened url %d", success);
}];
失败的原因不同:该方法仅在 iOS 10 后可用,因此在测试环境 运行 iOS 中抛出了 NSInvalidArgumentException
9.3.
我正在开发一个 ios 框架(可以使用 cocoapods 安装)。当调用此框架的方法时,它将在 safari 上打开一个 url。如果其他一些应用能够使用通用 link 处理 url,那么它将启动该应用。
我试图调用(在 ios 9.3 模拟器中,目标部署 ios 8.0
[[UIApplication sharedApplication] openURL:url];
以上代码在任何 ios 应用程序中都能完美运行。但是,当我将相同的代码放在另一个应用程序中包含的框架中时,它会出现异常和应用程序崩溃。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString scheme]: unrecognized selector sent to instance 0x7fc070717e00'
框架内部的工作方式是否不同?什么是正确的方法。在此示例中,我尝试打开常规 https link.
谢谢
由于这可能对其他人有用,以下是导致问题的原因:
[[UIApplication sharedApplication] openURL:url];
被调用的参数实际上不是 NSURL
,而是 NSString
,因此在此过程中抛出了 NSInvalidArgumentException
- 在描述中有提示类型错误。
编译器至少应该在这里发出警告。
编辑之前提到了另一种方法:
[[UIApplication sharedApplication] openURL:url options:nil completionHandler:^(BOOL success) {
NSLog(@"opened url %d", success);
}];
失败的原因不同:该方法仅在 iOS 10 后可用,因此在测试环境 运行 iOS 中抛出了 NSInvalidArgumentException
9.3.