AutoyaにURLSchemeハンドリング機構を追加した。
概要
AndroidでもURLSchemeからの起動とかでなんかパラメータ扱いたいよねみたいな話を叶えた。
iOSと違って特に面倒臭いところ
iOSの場合、コードやプロジェクト側に特定のスキーマを入れる必要はなく、Xcodeの設定をいじるコードが一節あればいいのだが、
Androidの場合はAndroidManifest.xmlに対してスキーマを書く必要がある。
その際、まあ、よくあると思うんだけど、AndroidManifestのマージ問題に遭遇することになる。
メインのAndroidManifestはAssets/Plugins/Androidに置くとして、サブのいろんな機能のAndroidManifest.xmlは別のところに置き、Unityにマージしてもらう。
で、[AndroidManifestがマージされる]ための条件は以下の通り。
AndroidManifest.xmlがマージされるための条件
1.Assets/Plugins/Android/FOLDER_NAME/以下にAndroidManifest.xmlを置く
これより深くても浅くてもダメ。
2.project.propertiesというファイルをAndroidManifest.xmlと同じフォルダに置く。
中身は、
target=android-16
android.library=true
とか。
3.manifestの内容は以下のような感じでOK
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.unity3d.player"
xmlns:tools="http://schemas.android.com/tools"
android:versionCode="1"
android:versionName="1.0">
<application>
<activity ....
</activity>
</application>
</manifest>
本体となるAndroidManifest.xmlに必要な、<?xml version="1.0" encoding="utf-8"?> とかのxmlの定義は不要。
manifestの中のアトリビュートは必須。
ということで、XMLのマージ問題はこれで解決できる。
project.propertiesがないとマージされなかったんだけど、これってなんなんだろう。
ドキュメントには特に書いてなかったが、github上のいろいろを眺めていて、project.propertiesファイルを適当に作ったら合成された。