1、在清單文件的Activity聲明裏添加:
<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="vmd" android:host="music" android:pathPrefix="/play"/>
</intent-filter>
- scheme:判別啓動的App
- host:適當記述
- pathPrefix:傳值時必須的key ※沒有也可以
- query:獲取值的Key和Value ※沒有也可以
2、H5中調起:
<a href="[scheme]://[host]/[pathPrefix]?[query]">啓動應用程序</a>
<!--示例-->
<a href="vmd://music/play?song=kugou&id=1">啓動應用程序</a>
3、Activity中接收參數:
Intent intent = getIntent();
String action = intent.getAction();
if(Intent.ACTION_VIEW.equals(action)){
Uri uri = intent.getData();
if(uri != null){
String song = uri.getQueryParameter("song"); //song值就是kugou了
String id= uri.getQueryParameter("id"); //id就是1
//do something
}
}
4、在二級頁面中對返回鍵做處理(根據自己項目的需求決定做不做)
@Override
public void onBackPressed() {
//NavUtils.getParentActivityIntent()方法可以獲取到跳轉至父Activity的Intent
//如果父Activity和當前Activity是在同一個Task中的,則直接調用navigateUpTo()方法進行跳轉
//如果不在同一個Task中的,則需要藉助TaskStackBuilder創建一個新的Task
Intent upIntent = NavUtils.getParentActivityIntent(this);
if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
TaskStackBuilder.create(this)
.addNextIntentWithParentStack(upIntent)
.startActivities();
} else {
upIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
NavUtils.navigateUpTo(this, upIntent);
}
super.onBackPressed();
}