我正在處理自定義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 –