ステップ
- Androidアプリケーションの準備
- URLの準備
- Chromeを開いて, リンクを表示し, 実行
Androidアプリケーションの準備
例として, 起動するためのActivity, MainActivityに 設定は, AndroidManifest.xml に書きます。<activity android:label="@string/app_name" android:name="com.atmarkplant.webapp.MainActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Holo.NoActionBar"> <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.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <data android:scheme="key" android:host="application" android:path="/"/> </intent-filter> </activity>ポイントは, 2段目のintentfilterです。 action, category のところはコピペでO.K. 最後のdataのandroid:schme, android:host, android:pathは, Chromeのリンクのパラメータとして 利用するので, ここをカスタマイズしていきます。
URLの準備
リンクを作ります。筆者は, これ用のサーバを用意し, HTMLファイルを用意してリンクを作りました。<a href="intent://application/#Intent;scheme=key;package=com.atmarkplant.webapp;end"> Start Web App </a>書式は, このようになります。Google Developer参照
intent: HOST/URI-path // Optional host #Intent; package=[string]; action=[string]; category=[string]; component=[string]; scheme=[string]; end;上でいう例は, hostに, application, path は, /, schemeには, key というのをそれぞれ入れました。 package は, アプリのパッケージのことです。
Chromeを開いて, リンクを表示し, 実行
早速実行してみましょう。 実行方法は, Chrome を開いて, このリンクを表示させます。そしてリンクをたたきます。 リンクを開くと, Androidアプリケーションが起動します。パラメータの渡し方・受け取り方
まずは, 渡し方です。これはリンクの中に埋め込みます。<a href="intent://application/#Intent;scheme=key;package=com.atmarkplant.webapp;S.key1=value1;S.key2=value2;end"> Start Web App </a>S. をつけて, key = value という形で表現します。ここでいう例は, key1, value1, key2, value2 になります。
続いて受け取り方です。結構迷いましたが, 単純に考えればわかります。intent で受け取っているので, Activity からgetIntent()で Intentを取得して, そこから値を取り出します。通常の起動方法の場合は, 値はnullになります。
Intent intent = getIntent(); String value1 = intent.getStringExtra("key1"); String value2 = intent.getStringExtra("key2");このコードを, Activityのどっかに埋め込みます。それにより挙動が返られますね。先ほど申しましたとおり, パラメータを渡さない 通常のアプリとして起動すると, value1, value2は, nullになります。
0 件のコメント:
コメントを投稿