前回は、cocos2d-xにてTableViewとMenuButton併用時のタッチイベントについてご紹介しました。
今回は、AirDropを使ってワイヤレスでコンテンツを共有する方法についてご紹介します。
AirDropとは、ワイヤレス通信を利用して、複数のiOSデバイス同士でファイルを簡単に共有できる機能です。
また、転送されるデータは、暗号化されますので、セキュリティ的にも安全に利用することができます。
利用する条件について下記に記載します。
【対象OS】
iOS7以上
【対象端末】
・iPhone5以降
・iPad(第4世代以降)
・iPad mini
・iPod touch(第5世代)
【共有できるファイル】
・画像ファイル
・動画ファイル
・テキストファイル
・音声ファイル
AirDropには、共有相手を指定することができます。
・連絡先のみ
→ 連絡先に登録されている人とだけ共有することができます
・すべての人
→ 近くにあるすべてのAirDrop対応iOSデバイスと共有することができます
AirDropは、簡単にiOSデバイス同士で、データの転送が行えるので、画像や
動画ファイルの共有アプリケーションや、任意のファイルをデータ転送して、
デバイスに保存するといったアプリケーションに適しています。
それでは早速、画像を共有するサンプルアプリケーションを作成してみましょう。
<画像を共有するサンプルアプリケーションの作成方法>
【前提条件】
・iOSデバイス(iOS7以上)を2台用意すること
・Wi-Fi及び、BuletoothをONにしておくこと
【手順1】
Xcodeを起動し、UIViewControllerにボタンを1つ作成します。
ボタン名:画像共有
【手順2】
共有する画像をプロジェクト内に組込みます。
【手順3】
手順1で作成したボタンのActionEventに画像を共有するコードを追加します。
データ共有を行う場合、標準クラスである「UIActivityViewController」クラスを利用します。
- (IBAction)shareImageClick:(id)sender { //画像の格納パスを取得する NSString *path = [[NSBundle mainBundle] bundlePath]; NSString *imagePath = [NSString stringWithFormat:@"%@/%@", path, @"testImage.png"]; //画像を取得する UIImage *image = [UIImage imageWithContentsOfFile:imagePath]; //配列に格納する NSArray *arraysItem = [NSArray arrayWithObjects:image, nil]; //ActivityViewControllerを作成する UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:arraysItem applicationActivities:nil]; //ActivityViewControllerViewを表示する [self presentViewController:activityViewController animated:YES completion:nil]; }
これで、画像を共有するサンプルプロジェクトは作成できました。
それでは、実際に動かしてみましょう。
事前準備で用意したiOSでバイスの1台に作成したアプリケーションを
インストールし、「画像共有」ボタンをタップします。
画面下から共有するviewが表示されることを確認します。
もう1台のiOSデバイスを起動させます。
もう1台のiOSデバイスと共有できたことを確認し、赤い枠で囲まれた箇所をタップします。
共有するか確認できるダイアログが表示されるので、「受け入れる」ボタンをタップします。
カメラロールが起動し、共有した画像がカメラロールに保存されていることを確認します。
お疲れ様でした。
これで、「画像を共有するサンプルアプリケーションの作成方法」は完了となります。
今回は、画像を共有して標準アプリケーションである「カメラロール」に保存されましたが、
自身で作成したアプリケーションに画像を保存することもできます。
みなさんも、AirDropを利用していろいろなファイルを共有してみてはいかがでしょうか。
最後までご覧いただき有難うございました。
弊社では全国各地の請負い(ご自宅)で作業協力頂ける、フリーランスエンジニアの方を常時探しております。
ご興味ある方は、お気軽にお問い合わせ下さい。