我正在处理自定义URL方案的应用程序的Swift版本。什么是应用程序的Swift 2方法签名:openURL:options:看起来像什么?
你需要的方法,在iOS的9
方法的Objective-C的版本能正常工作工具改变了Objective-C的应用:
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<NSString *,
id> *)options
{
//my code here
}
然而,在我的斯威夫特应用程序,等效功能:
func application(application: UIApplication,
openURL: NSURL,
options: [String : AnyObject]) -> Bool
{
//My code here
}
当我在iOS 9设备上运行应用程序时从不会调用它。当我在Safari中调用自定义URL方案时,系统会提示'Open in'appname“?',当我点击打开时,它会将我的应用程序返回到前台,但上述方法不会被调用。
我的方法签名中必定存在一些细微的不匹配,但我看不到它。我究竟做错了什么?我尝试了各种变化,其中没有任何工作。
是你的自定义URL方案具有HTTP或HTTPS协议? –
来自Apple Developer:如果您的实现从应用程序:willFinishLaunchingWithOptions:和application:didFinishLaunchingWithOptions:methods中返回false,则不调用此方法。也许你错过了这个? https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/index.html?hl=ar#//apple_ref/occ/intfm/UIApplicationDelegate/application:openURL:options: –
@ ZellB,感谢您的建议,但那不是。我的'didFinishLaunchingWithOptions:'返回true –