Twitter にツイート投稿する iOS アプリのサンプルコードを書いてみた。 Storyboard を使わずに、GUIを組み立てなくても、サンプルコードをコピペするだけで動作する。
今回の動作確認環境: Xcode 7.1.1 + Swift 2.1 + 実機 iPhone 6 + iOS 9.1
Xcode で新規に Single View Application のプロジェクトを作成して、
以下のコードを ViewController.swift に上書きコピペすればOK。
//
// ViewController.swift
//
import UIKit
import Social
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
buildToolbar()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
// ツールバーを作る
internal func buildToolbar() {
// ツールバー
let toolbar = UIToolbar(frame: CGRectMake(0, 0, self.view.bounds.size.width, 44.0))
toolbar.layer.position = CGPoint(x: self.view.bounds.width / 2, y: self.view.bounds.height - 22.0)
// ボタン
let tweetButton = UIBarButtonItem(title: "ツイートする", style:.Plain, target: self, action: "onClickTweetButton:")
toolbar.items = [tweetButton]
// ツールバーを画面に追加
self.view.addSubview(toolbar)
}
// ボタンを押したときの処理
internal func onClickTweetButton(sender: UIBarButtonItem) {
// Twitter 投稿用ダイアログ
let cvc = SLComposeViewController(forServiceType: SLServiceTypeTwitter)
// ダイアログ内の初期テキストを設定
cvc.setInitialText("おなかすいた #nilab")
// URLを追加することが可能
cvc.addURL(NSURL(string: "http://www.nilab.info/"))
// 画像を追加することも可能
//cvc.addImage(UIImage!)
// 投稿ダイアログ用を表示
self.presentViewController(cvc, animated: true, completion:nil)
}
}
プログラムを実行すると、真っ白な画面の左下に「ツイートする」とテキストが表示される。
「ツイートする」をタップすると、Twitter 投稿用ダイアログが表示される。ここにテキストなどを入力して「投稿」ボタンを押すとツイートできる。
iOS の設定画面で Twitter アカウントを追加していないと、「Twitterアカウントがありません」 とエラーダイアログが表示される。 iOS が用意してくれているデフォルトの機能なので、自前で実装しなくていいからお気楽。
Twitter アカウントを追加していない場合は、 iOS の設定画面から追加できる。
残念ながら SLComposeViewController クラスのお手軽な手法では、ツイートに位置情報を付加することはできないみたい。画像とかURLは付加できるのに。
- ref.
- SLComposeViewController Class Reference
- ASCII.jp:Twitter/Facebookと連携させるiOSアプリ開発 (1/3)|Swiftで「つながるiOSアプリ」
tags: swift twitter
Posted by NI-Lab. (@nilab)