iOS8の新機能であるApp Extensionsってやつを色々試しています。

その中の一つにPocketの後で読むとかはてなブックマークのブックマーク機能などなどへの共有方法を実装しようとしていましたが、

そもそもアプリから共有する手段を呼べるのか知らなかったので、試してみました。

↓こんな機能です。

ScreenShot84

ScreenShot85

なんて難しいことはないですね…。

ちなみにこの機能iOS6からあったらしいですが。

ソースコード

たったこれだけです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
let shareItems = [self.textFiled.text as NSString];
let activityViewController = UIActivityViewController(activityItems: shareItems, applicationActivities: nil)
activityViewController.completionHandler = {(activityType: String!, completed: Bool) in
if !completed {
NSLog("Canceld...")
}
if activityType == UIActivityTypePostToTwitter {
NSLog("Post Twitter")
}
}
if activityViewController.respondsToSelector("popoverPresentationController") {
let presentationController = activityViewController.popoverPresentationController
presentationController?.sourceView = sender as UIView
}
self.presentViewController(activityViewController, animated: true, completion: nil)

解説

特にありません…。

UIAlertViewControllerみたいな感じで使えます。

またactivityItems[AnyObject](swift), NSArray *(Objective-C)と色々なオブジェクトを渡すことが出来ます。

あとは勝手に受け取る側が解釈する形になります。

他にもこの共有は外すなどの設定もできるので色々使えるかと思います。

とりあえず僕はShare Extensionの開き方を知りたかっただけで、簡単だったので共有するために記事書きました。

終わりに

なんか色々なところで言われてますが、使い勝手の点でiOSAndroidに近づいている感じがします。

ただ近づくだけではなくて、良い意味でこすり合わせている感じでしょうか…。

そうするとAndroidの優位性がどんどんなくなっていくかもですね。

以上になります。

参考

vandadnp / iOS-8-Swift-Programming-Cookbook

iOS

「iOS」のおすすめ記事