微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 应用程序委托中的Facebook和Twitter的OpenURL?

我使用Facebook SDK和Twitter SDK进行登录注册.

但他们都没有从一种常见的方法打开网址.就像我写的下面代码为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)
}

感谢所有试图回答我问题的人.

谢谢.

原文地址:https://www.jb51.cc/iOS/333472.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐