UIActivityViewController完成处理程序在tweet失败时返回成功

问题描述 投票:32回答:4

我正在使用UIActivityViewController显示共享表,以便用户可以共享我的应用。我目前正在测试推文,但得到了一些意想不到的结果。第一次发推文时,一切顺利。第二次,我收到一条重复的tweet错误消息,这是预期的。问题是completionWithItemsHandler返回success: Booltrue

我希望能够向用户显示我自己的个性化消息,而不是当前返回的大量消息。

这是我的代码:

@IBAction func ShareButtonTapped(sender: AnyObject) {
    let textToShare = "I'm using Buzz!  The new way to send emoji's, with sound, it's annoying, funny and amazing"
    var url = NSURL(string: "-Image url masked out-")
    var data = NSData(contentsOfURL: url!)
    let image = UIImage(data: data!)
    if let myWebsite = NSURL(string: "-redirect masked out-")
    {
        let objectsToShare = [textToShare, myWebsite]
        let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
        activityVC.completionWithItemsHandler = {
            (activity, success, items, error) in
            println("Activity: \(activity) Success: \(success) Items: \(items) Error: \(error)")
        }
        self.presentViewController(activityVC, animated: true, completion: { () -> Void in

        })
    }
}

这是我的日志:

2015-01-27 11:10:58.021 Buzz [3239:813859] LaunchServices:invalidationHandler称为2015-01-27 11:10:58.052嗡嗡声[3239:813860]LaunchServices:称为Activity的invalidationHandler:com.apple.UIKit.activity.PostToTwitter成功:true项目:无错误:无2015-01-27 11:11:04.134 Buzz [3239:813859] LaunchServices:invalidationHandler称为2015-01-27 11:11:09.182 Buzz [3239:813859]插件com.apple.share.Twitter.post无效

ios swift twitter uiactivityviewcontroller
4个回答
33
投票

对于SWIFT 3 AND 4,iOS 10 AND 11]使用这样的完成处理程序:

activityVC.completionWithItemsHandler = {(activityType: UIActivityType?, completed: Bool, returnedItems: [Any]?, error: Error?) in
    if !completed {
        // User canceled 
        return
    }
    // User completed activity
}

self.present(activityVC, animated: true, completion: nil)

13
投票

SWIFT 2.0 iOS 8.0>


8
投票

我认为您不会影响UIActivityViewController的反馈流,因为它是高级的,易于使用的组件,并非针对细粒度的定制而定制。


-2
投票

我建议更换

© www.soinside.com 2019 - 2024. All rights reserved.