在manifest文件中申明scheme和parentActivity
<activity android:name=".SecondActivity"
android:parentActivityName=".MainActivity">
<!--申明parentActivity碧库,用戶按返回鍵后返回主頁面-->
<!--在Android 4.1版本之后捌归,可以直接使用android:parentActivityName這個屬性來進行指定-->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!--下面所設置的值需要和html端對調(diào)-->
<!--在data里設置了 scheme和host施敢,則該Activity可以接收和處理類似于 "share://article/XXX"的鏈接-->
<data
android:host="article"
android:scheme="share"
android:pathPrefix="/attr" />
</intent-filter>
</activity>
h5跳轉
<a href="[scheme]://[host]/[path]?[query]">啟動應用程序</a>
示例
<a href="share://article/attr?name=zhangsan&age=26">啟動應用程序</a>
scheme:判別啟動的App
host:適當記述
path:傳值時必須的key ※沒有也可以
query:獲取值的Key和Value ※沒有也可以
activity中獲取傳遞過來的參數(shù)
Intent i_getvalue = getIntent();
String action = i_getvalue.getAction();
if(Intent.ACTION_VIEW.equals(action)){
Uri uri = i_getvalue.getData();
if(uri != null){
String name = uri.getQueryParameter("name");
String age= uri.getQueryParameter("age");
}
}
在二級頁面中對返回鍵做處理
由于是網(wǎng)頁打開的app指定二級頁面,activity棧中只存在SecondActivity這一個activity蜜唾,所以當點擊返回按鈕的時候,會直接退出當前app寂殉。我們希望按返回的時候腿时,回到MainActivity承桥,所以這里需要處理一下
@Override
public void onBackPressed() {
//NavUtils.getParentActivityIntent()方法可以獲取到跳轉至父Activity的Intent
//如果父Activity和當前Activity是在同一個Task中的驻粟,則直接調(diào)用navigateUpTo()方法進行跳轉
//如果不在同一個Task中的,則需要借助TaskStackBuilder創(chuàng)建一個新的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();
}