Android URLスキーム
[やりたいこと・できたこと]
web上のリンクからアプリを起動
webからアプリに値を渡す
[書き換える場所]
MainActivity
Web側のhtml
Android.Manifest.xmlの android:host="send" android:scheme="free" とWeb側のhtmlのテストを合わせる
Android.Manifest.xml
<activity
android:name="jp.co.aaa.activities.MainActivity"
android:label="@string/title_activity_main"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.Launcher">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="jp.co.aaa" />
</intent-filter>
</activity>
MainActivity
// uriに後でWebに入れるデータ(idやusenoなど)今回はwalletとethが入る
Uri uri = getIntent().getData();
if (uri == null){
startActivity(new Intent(this, bbbActivity.class));
break;
}
else {
// パラメータで指定したhogehogehogeが取得できる
String wallet = uri.getQueryParameter("wallet");
String eth = uri.getQueryParameter("eth");
System.out.println(wallet);
System.out.println(eth);
startActivity(new Intent(this, bbbActivity.class));
break;
}
Web側のhtml
<p><a href="jp.co.aaa://?wallet=0xccccccccc;eth=0.1">ここをクリックしてアプリを起動</a></p>
?wallet=0xccccccccc;eth=0.1
この部分が値を渡している。
今回であれば、
wallet=0xccccccccc
eth=0.1
という2つの値を渡せる。
これをアプリ側で受け取ることで処理ができる。
失敗したこと
・書き換えたソースを導入した端末でWebもアプリも開かなければならない