国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android如何通過scheme跳轉界面

2019-10-22 18:31:36
字體:
來源:轉載
供稿:網友

Android通過scheme跳轉界面,應該如何實現?

需求

通過后臺返回鏈接地址

eg: app://com.bobo.package/path?param1=abc¶m2=cde

跳轉到指定的Activity 并帶入參數

實現

1.在manifest中配置Activity

<activity android:name=".ActivityName">   <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="app"         android:host="com.bobo.package"         android:path="/path"/>   </intent-filter></activity>

2.實現跳轉

private void startActivity(Context context) {    try {      Uri uri = Uri.parse("app://com.bobo.package/path?param1=abc¶m2=cde");      Intent intent = new Intent();      intent.setAction(Intent.ACTION_VIEW);      intent.setData(uri);      PackageManager packageManager=getPackageManager();      ComponentName componentName=intent.resolveActivity(packageManager);      if (componentName!=null){        context.startActivity(intent);      }    } catch (Exception e) {      e.printStackTrace();    }  }

3.Activity中處理數據獲取參數

private void dealScheme() {    Intent intent = getIntent();    String action = intent.getAction();    Uri uri=null;    if (Intent.ACTION_VIEW.equals(action)) {      Uri uri= intent.getData();    }    if(uri==null)      return;    String param1=url.getQueryParameter("param1");    String param2=url.getQueryParameter("param2");    // doSomething(param1,param2);}

填坑

1.如下兩個Activity 當通過scheme 跳轉界面時 ,系統會提示選擇打開方式 因為沒有精確匹配要跳哪個界面

<activity android:name=".ActivityAAAAAA">   <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="app"/*沒有配置host 和path*/        />   </intent-filter></activity><activity android:name=".ActivityBBBBBB">   <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="app"         android:host="com.bobo.package"        />   </intent-filter></activity>

2.如果不同的鏈接都要跳到一個Activity

eg: app://com.bobo.package/path?param1=abc¶m2=cde
application://host/route?param1=abc¶m2=cde

Activity配置

<activity android:name=".ActivityName">   <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="app"        android:host="com.bobo.package"        android:path="/path"/>     <data android:scheme="application"       android:host="host"       android:path="/route"/>   </intent-filter></activity>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淮北市| 台山市| 桃源县| 上饶县| 四平市| 原阳县| 富蕴县| 赤峰市| 郯城县| 莆田市| 菏泽市| 崇礼县| 页游| 朝阳区| 东光县| 凤山市| 平果县| 玉山县| 孟连| 株洲县| 邳州市| 定日县| 江山市| 理塘县| 抚顺县| 获嘉县| 长葛市| 广南县| 本溪| 高要市| 绥德县| 富平县| 盐源县| 视频| 通海县| 北碚区| 孝义市| 湘阴县| 拉萨市| 绿春县| 瑞丽市|