但他们都没有从一种常见的方法打开网址.就像我写的下面代码为Facebook,
func application(application: UIApplication,openURL url: NSURL,sourceApplication: String?,annotation: AnyObject) -> Bool{ if(url.scheme == "fb1651015905222312") { return FBSDKApplicationDelegate.sharedInstance().application(application,openURL: url,sourceApplication: sourceApplication,annotation: annotation) } return true}
这工作正常,对于twitter我必须评论上面的方法,并写得像,
func application(app: UIApplication,options: [String : AnyObject]) -> Bool { if Twitter.sharedInstance().application(app,openURL:url,options: options) { return true } return true}
这适用于Twitter.
问题是我需要编写一个常用方法来在appDelegate中打开他们的URL.那我怎么克服它?
提前致谢.
注意:我们不能在app delegate中编写这两种方法.
解决方法 最后我找到了这个问题的解决方案.斯威夫特3
func application(_ app: UIApplication,open url: URL,options: [UIApplicationopenURLOptionsKey : Any] = [:]) -> Bool { if Twitter.sharedInstance().application(app,open:url,options: options) { return true } let appID = SDKSettings.appID if url.scheme != nil && url.scheme!.hasPrefix("fb\(appID)") && url.host == "authorize" { // facebook return SDKApplicationDelegate.shared.application(app,open: url,options: options) } return false}
对于Swift< 3 这是允许我为Facebook和Twitter编写URL的方法.
func application(app: UIApplication,options: [String : AnyObject]) -> Bool { if Twitter.sharedInstance().application(app,options: options) { return true } let sourceApplication: String? = options[UIApplicationopenURLOptionsSourceApplicationKey] as? String return FBSDKApplicationDelegate.sharedInstance().application(app,annotation: nil)}
感谢所有试图回答我问题的人.
谢谢.
总结以上是内存溢出为你收集整理的ios – 应用程序委托中的Facebook和Twitter的OpenURL?全部内容,希望文章能够帮你解决ios – 应用程序委托中的Facebook和Twitter的OpenURL?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)