3
4

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.

カスタムURIスキームの設定

Posted at

アプリケーション記述ファイルのxmlにAndroidとiOSそれぞれ別々に設定を記述します

Androidの設定
<android>
  <manifestAdditions>
    <![CDATA[
      <manifest>
        <application>
          <activity>
            <intent-filter>
              <action android:name="android.intent.action.MAIN"/>
              <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
            <intent-filter>
              <action android:name="android.intent.action.VIEW"/>
              <category android:name="android.intent.category.BROWSABLE"/>
              <category android:name="android.intent.category.DEFAULT"/>
              <data android:scheme="test-app"/>
            </intent-filter>
          </activity>
        </application>
      </manifest>
    ]]>
  </manifestAdditions>
</android>
iOSの設定
<iPhone>
      <InfoAdditions><![CDATA[
            <key>CFBundleURLTypes</key> 
            <array> 
                  <dict> 
                        <key>CFBundleURLSchemes</key> 
                        <array> 
                              <string>test-app</string> 
                        </array> 
                        <key>CFBundleURLName</key> 
                        <string>jp.co.piisu.test-app</string> 
                  </dict> 
            </array>
      ]]></InfoAdditions>
</iPhone>

以上で、
<a href="test-app://arg1=funya&arg2=kurage">アプリを起動</a>
のようなリンクをふんだ場合に、アプリが起動されるようになります。


####パラメータの読み込み
NativeApplicationオブジェクトのinvokeイベントを通じて読み込むことができます。

パラメータの読み込み
var native_app:NativeApplication = NativeApplication.nativeApplication;
native_app.addEventListener(InvokeEvent.INVOKE, function(evt:InvokeEvent):void {
	//通常起動の場合もinvokeイベントが発生し、この場合argumentsのlengthは0なのでチェックを行う
	if(evt.arguments.length > 0) {
		trace(evt.arguments[0].toString());    // "test-app://arg1=funya&arg2=kurage" と出力
	}
});

####注意

  • 他のアプリが同じ名前のスキームを登録していると、既存アプリが優先されてしまう
  • StageWebViewではカスタムURIスキームを使用してURLを開くことができない
  • AndroidのブラウザにカスタムURIスキームを直入力しても、アプリを起動できない
3
4
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
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?