6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Unityで制作したiOSアプリへのFacebook AppLinksの導入

Posted at

ディープリンクをアプリに実装するのは通常なかなか骨の折れる仕事ですが、
ミドルウェア・ゲームエンジンを用いてアプリを開発している場合は尚更です。
そこで今回はUnityで制作したアプリにFacebook SDKのディープリンク機能であるApp Linksの導入方法を紹介します。なお今回検証したUnityバージョンは4.2となります。

#Unity用Facebook SDKの導入

Facebookのデベロッパーサイトに行き、SDKを導入するアプリを登録します。
登録すると、Facebook App IDが発行されます。

続いて最新のUnity用Facebook SDKをダウンロードしてください。
https://developers.facebook.com/docs/unity/downloads?locale=ja_JP

UnityでSDKを導入するプロジェクトを開き、
ダウンロードしたFacebook SDKのunity packageファイルをダブルクリックして全ファイルをimportします。

Unityを再起動するとメニューバーに「Facebook」という項目が増えているので、
そこから「Edit Setting」を開き、「App Name」に任意のアプリ名、「App Id」に先ほどデベロッパーサイトで発行したFacebook App ID、「URL Scheme Suffix」に任意のURLスキームを記述します。

#Unity側でのディープリンクの記述

アプリのトップページとなるSceneを開きます。
トップページにあるオブジェクトにひも付けられたスクリプトに、下記のメソッドを追加してください。

HogeScript.cs
#if  UNITY_IPHONE && !UNITY_EDITOR
public void DeepLinkMethod (string targetUrl) {
  // 必要に応じて遷移先を分岐させる
  Application.LoadLevel(<遷移先Scene>);
}
#else
public void DeepLink () {
  // Android端末での挙動
}
#endif

以上でUnity側での設定ができました。
Xcodeプロジェクトにビルドし、Xcodeでの設定に移ります。

#Xcode側でのディープリンクの記述

UnityAppController.mmを開き、設定を追加していきましょう。

UnityAppController.mm
- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation
{
  
  BFURL *parsedUrl = [BFURL URLWithInboundURL:url sourceApplication:sourceApplication];
  if ([parsedUrl appLinkData]) {
    NSURL *targetUrl = [parsedUrl targetURL];
    UnitySendMessage(HogeObject, DeepLinkMethod, targetUrl);
  }
  
}

これでディープリンクの導入ができました。

ADD_ITEMを使うともっとラクチンにできるかもしれないので、引き続き検証しようと思います。
今回は以上です!

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?