AndroidでURL Scheme方式でappを起動
5039 ワード
URL Schemeはandroidでappを引っ張る方法の一つとしてよく見られます
メリットは、ウェブページからapp を引き出すことができる.具体的なActivity を引き上げることができる
説明
Androidはurl schemeでactivityを開き、manifestで以下のパラメータを構成するだけでよい
実際には
ここではこれらのパラメータを見ればいいのでurl形式を参考にすることができます
のように
例を挙げる
これにより、リンク
htmlページからappを起動する
別のappにその中の人員情報を表示させます.それはidを1つ伝えればhtmlでurlリンクを直接使用してappを起動し、具体的なactivityを開くことができます.
Javaコードからappを起動する
入力パラメータの解析
メリット
説明
Androidはurl schemeでactivityを開き、manifestで以下のパラメータを構成するだけでよい
"***"
android:path="***"
android:scheme="***">
...
実際には
に他のパラメータがあり、複雑なニーズがあれば検討することができます.ここではこれらのパラメータを見ればいいのでurl形式を参考にすることができます
android:scheme
android:host
android:path
のように
android:scheme="http"
android:host="www.baidu.com"
android:path="/s"
http://www.baidu.com/s?wd=what
例を挙げる
activity
<intent-filter>
<data
android:host="www.adc.com"
android:path="/person"
android:scheme="myapp"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
intent-filter>
これにより、リンク
myapp://www.abc.com/person
を介してこのactivityを開くことができる.例えばactivityを開いてユーザの情報myapp://www.abc.com/person?id=123
を開くなど、より複雑にすることができる.htmlページからappを起動する
別のappにその中の人員情報を表示させます.それはidを1つ伝えればhtmlでurlリンクを直接使用してappを起動し、具体的なactivityを開くことができます.
<a href="myapp://www.abc.com/person?id=123&search=https://www.baidu.com/s?wd=what">start appa>
Javaコードからappを起動する
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("myapp://www.abc.com/person?id=123&search=https://www.baidu.com/s?wd=what"));
startActivity(intent);
入力パラメータの解析
Intent intent = getIntent();
String action = intent.getAction();
if(Intent.ACTION_VIEW.equals(action)){
Uri uri = intent.getData();
if(uri != null){
String id = uri.getQueryParameter("id"); // id="123"
String search = uri.getQueryParameter("search"); // search="https://www.baidu.com/s?wd=what"
}
}