Android实现H5点击打开app或跳转指定界面

本文原创,转载请注明出处。欢迎关注我的 简书。

安利一波我写的开发框架:MyScFrame喜欢的话就给个Star

场景

55489201696a

H5界面中的入口

有时候为了方便用户在H5界面上直接下载app或者打开手机app,我们会在H5界面上添加一个按钮,点击按钮可以实现下载或者打开app的功能。关于下载功能这里不做叙述,这里主要讲述打开app并跳转到指定界面的业务如何实现。

规则

://?

这样写可能大家看不大懂,没事,我们接着往下看。

关键代码

1.AndroidManifest中加入intent-filter:

android:name=".view.login.WelcomeActivity">

我们要在拥有android:name="android.intent.action.MAIN参数的界面下新增一个intent-filter

至于为什么要在android:name="android.intent.action.MAIN参数的界面下新增而不是其他界面,这应该不需要多做叙述了吧,想必android:name="android.intent.action.MAIN参数的作用大家都懂。

2.参数描述:

android:scheme="android" 用来辨别启动的app

android:host="h5" 可以当成是一个域名,这边建议使用应用的包名

android:pathPrefix="/open" 参数路径前缀

如果你要传递type=1,id=7这两个参数的话,在H5中展示效果应该是:

打开看看

3.接收参数:

Intent intent = getIntent();

String action = intent.getAction();

String type= null;

String id = null;

if (Intent.ACTION_VIEW.equals(action)) {

Uri uri = intent.getData();

if (uri != null) {

type = uri.getQueryParameter("type");

id = uri.getQueryParameter("id ");

}

}

4.建议:

实际开发过程中,如果直接从WelcomeActivity跳转到指定界面的话,返回的时候可能会直接退出应用(我开发的若干个应用中WelcomeActivity界面在跳转其他界面后都会直接关闭。)如果是在指定页面的返回操作中去启动HomeActivity的话,可能效果上不是很理想,因为大多数应用的首页都是相对复杂的,初始化操作都会比较耗时。

所以,我的个人建议是通过发送EventBus粘性事件给首页,然后在首页里面做相对应的业务跳转逻辑,这样就不影响正常的业务逻辑,而且改动起来也简单一些。

5.其他参考资料

欢迎大家留言指出我的不足。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐