web頁面點選按鈕喚起App跳轉到指定頁面以及返回鍵的處理
阿新 • • 發佈:2019-02-14
1.在需要跳轉的指定頁面的AndroidManifest中配置
<activity android:name=".activity.goods.GoodsDetail" android:configChanges="keyboardHidden|orientation|screenSize" //點選返回時跳轉的activity android:parentActivityName=".MainActivity" android:screenOrientation="portrait"> <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" /> <data android:host="my.com" android:scheme="m" /> </intent-filter> </activity>
2.在指定頁面的接值
Intent i_getvalue = getIntent(); String action = i_getvalue.getAction(); if (Intent.ACTION_VIEW.equals(action)) { Uri uri = i_getvalue.getData(); if (uri != null) { itemId = uri.getQueryParameter("id"); } } else { itemId = getIntent().getStringExtra("id"); }
3.指定頁面返回鍵的處理
@Override public void onBackPressed() { if (isLaunchedActivity(context, MainActivity.class)) { 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); } } else { Intent intent = new Intent(this, MainActivity.class); startActivity(intent); } super.onBackPressed(); } /** * 判斷目標activity是否啟動 * * @param context * @param clazz 傳入ACT_main * @return */ public boolean isLaunchedActivity(@NonNull Context context, Class<?> clazz) { Intent intent = new Intent(context, clazz); ComponentName cmpName = intent.resolveActivity(context.getPackageManager()); boolean flag = false; if (cmpName != null) { ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningTaskInfo> taskInfoList = am.getRunningTasks(10); for (ActivityManager.RunningTaskInfo taskInfo : taskInfoList) { if (taskInfo.baseActivity.equals(cmpName)) { flag = true; break; } } } return flag; }
HTML中的程式碼:
結束