7Rアプリ

プログラミングで詰まったことなど書いてます

Android URLスキーム

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[やりたいこと・できたこと]

web上のリンクからアプリを起動

 webからアプリに値を渡す

 

 

[書き換える場所]

Android.Manifest.xml 

MainActivity

Web側のhtml 

 Android.Manifest.xmlandroid: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など)今回はwalletethが入る
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つの値を渡せる。

 

これをアプリ側で受け取ることで処理ができる。

 

Google Mapsのアプリを開く

 

 

 

失敗したこと

・書き換えたソースを導入した端末でWebもアプリも開かなければならない