Android如何通过scheme跳转界面

Android如何通过scheme跳转界面,第1张

概述Android通过scheme跳转界面,应该如何实现?需求通过后台返回链接地址eg:app://com.bobo.package/path?param1=abc¶m2=cde

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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Android如何通过scheme跳转界面全部内容,希望文章能够帮你解决Android如何通过scheme跳转界面所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1145529.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存