Chloroware開発日誌(若旦那のブログ)

Air for iOSでURIスキームを使用する

time 2016/03/24

URIスキームとは

URIスキームは、URI(URL)の先頭のhttp、httpsなどを指し、好きな文字列を使用することで、自分のアプリに関連付けることができる。

例えば、

line://

をブラウザで開くことで、LINEを開くことができる。

また、

twitter://mentions

のように、//のあとの文字列を指定することで、アプリに特定の動作をさせることもできる。

このリンクの場合はTwitterの通知タブが開く。

AIR for iOS で実装する

アプリケーション記述ファイルにURIスキームの文字列を指定する

URIスキームを使用したいアプリの記述ファイルに次の情報を追加。

<iPhone>
      <InfoAdditions><![CDATA[
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>使いたい文字列</string>
</array>
<key>CFBundleURLName</key>
<string>アプリケーションID</string>
</dict>
</array>
]]></InfoAdditions>
</iPhone>

AIR for iOS アプリ側でURIスキームの文字列を取得して動作を指定する

NativeApplication.nativeApplicationにInvokeEvent.INVOKEのイベントリスナーを登録してイベント発生時にURIスキームの文字列を取得する

URIスキームからアプリを起動した場合にはInvokeEvent.arguments[0]に起動時の文字列が格納されているから、それを調べればよい。

ただし、InvokeEvent.INVOKEはURIスキームによる起動時以外のアプリ起動でも発生し、その時はInvokeEvent.argumentsは空の配列であるため、InvokeEvent.arguments.lengthが0でないこと確認する必要がある。

次のソースコードの場合、例えばmyapp://myargumentのリンクでアプリが起動した場合、myapp://myargumentが出力される。
NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, function(e:InvokeEvent):void {
if(e.arguments.length > 0) {
trace(e.arguments[0].toString());  

}
});

down

コメントする




あいさつ



sponsored link