12/08/2018, 13:13

Cách tweet bằng SLComposeViewController。

Cách tweet bằng SLComposeViewController。 Đầu tiên cần import Social trong ViewController.swift 。 Sau đó chúng ta thêm button(có thể đặt tên theo code bên dưới là tweet,Actionname:tweetAction) và thêm method dưới vào ViewController.swift @IBAction func tweetAction(sender: AnyObject) { // ...

Cách tweet bằng SLComposeViewController。 Đầu tiên cần import Social trong ViewController.swift 。 Sau đó chúng ta thêm button(có thể đặt tên theo code bên dưới là tweet,Actionname:tweetAction) và thêm method dưới vào ViewController.swift

@IBAction func tweetAction(sender: AnyObject) {
    // code đơn giản nhất để twitter
    if SLComposeViewController.isAvailableForServiceType(SLServiceTypeTwitter) { // check quyền dùng
        let composeCtl = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
        composeCtl.completionHandler = {result in
            if result == SLComposeViewControllerResult.Done {
                // xử lí khi tweet thành công
                println("Tweet Done ")
            }
        }
        self.presentViewController(composeCtl, animated: true, completion:nil)
    }
}

:Không cần chứng nhận gì, Chỉ cần thiết lập trên simulator hoặc IOS framework nên rất đơn giản 。 Ngoài ra có thể thêm ảnh bằng method addImage,hoặc dán URL bằng method addURL,nhanh gọn

Về phía Twitter thì họ cũng khuyên nên thêm các xử lí bên dưới  (có chứa addImage、addURL),mình viết bằng swift.

・thêm button vào Storyboard(Actionname :「recommendedTweetAction」)

・code của recommendedTweetAction

@IBAction func recommendedTweetAction(sender: AnyObject) {
    //  Create an instance of the Tweet Sheet
    let tweetSheet = SLComposeViewController(forServiceType: SLServiceTypeTwitter)

    // Sets the completion handler.  Note that we don't know which thread the
    // block will be called on, so we need to ensure that any UI updates occur
    // on the main queue
    tweetSheet.completionHandler = {result in
        switch (result) {
            //  This means the user cancelled without sending the Tweet
        case SLComposeViewControllerResult.Cancelled:
            println("SLComposeViewControllerResult.Cancelled")
            //  This means the user hit 'Send'
        case SLComposeViewControllerResult.Done:
            println("SLComposeViewControllerResult.Done")
        }

        //  dismiss the Tweet Sheet
        dispatch_async(dispatch_get_main_queue(), {
            self.dismissViewControllerAnimated(true, completion: {
                println("Tweet Sheet has been dismissed.")
            })
        })
    }

    //  Set the initial body of the Tweet
    tweetSheet.setInitialText("just setting up my twttr")

    //  Adds an image to the Tweet.  For demo purposes, assume we have an
    //  image named 'larry.png' that we wish to attach
    if !tweetSheet.addImage(UIImage(named: "xcodeIcon.png")) {
        println("Unable to add the image!")
    }

    //  Add an URL to the Tweet.  You can add multiple URLs.
    if !tweetSheet.addURL(NSURL(string: "http://twitter.com/")) {
        println("Unable to add the URL!")
    }

    //  Presents the Tweet Sheet to the user
    self.presentViewController(tweetSheet, animated:true, completion: {
        println("Tweet sheet has been presented.")
    })
}

Bên trên mình đã hướng dẫn dùng code đơn giản nhất để tweet và các xử lí bên Twitter khuyên,

0