[Android]企业多个APP统一Launcher平台方案

2018年02月10日 Android 暂无评论 阅读343次


集团内多个APP,在终端用户手机上安装后出来了多个应用图标,并且应用图标基本都是企业logo,给用户带来了不少麻烦。
基于此场景,希望做一个统一入口,安装个APP后用户手机上只有一个应用,通过该统一的应用,跳转进入到之前的各APP中。各个APP还是有各自开发商负责更新维护。

虽然单独APP有各种各样的开发模式,原生/H5/RN等,但最为这个统一入口的APP,我们还是希望用原生开发,毕竟后续的跳转都要依赖原生的API来实现。
既然必须依靠原生实现,Android和iOS必然是单独写了,本文只介绍Android的实现思路。

问题1:应用安装后隐藏应用图标
 采用的方法,在AndroidManifest.xml文件,为主Activity的<intent-filter>中增加如下设置:


<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:host="test" android:scheme="xapp" />

最后看起来应该是这个样子的



<activity
    android:name=".MainActivity"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
        <action android:name="android.intent.action.VIEW"></action>
        <category android:name="android.intent.category.DEFAULT"></category>
        <category android:name="android.intent.category.BROWSABLE"></category>
        <data android:host="jileniao.net" android:scheme="app" />
    </intent-filter>
</activity>

关于intent-filter中的data内容,解释如下:
data用于把数据规范添加到一个Intent过滤器中,数据规范能够只是数据类型(mimeType属性)、或数据位置标识(URI),也可以是数据类型和数据位置标识(URI)。一个URI(如下格式)被分成几个独立的属性来分别指定:


scheme://host:port/pathorpathPrefix|pathPattern


问题2:通过统一入口APP启动其他APP

自己的APP调用起其他APP,方法很多了,并不是难点。这里仅仅记录下我用到的方法,也是和第1个问题的结合。

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("app://jileniao.net"));
intent.putExtra("JILENIAO_APP", "jileniao.net");
MainActivity.this.startActivity(intent);

如果想传递参数,和正常Intent传值一样,intent中设置即可。

解决了上面两个问题,就基本实现了原始的几个业务APP安装后自动隐藏在用户手机Launcher中,最终的进入是在统一入口APP中。

后话,APP层面是这样解决了,但用户登录如何统一起来仍是个大问题。每个APP都要单独登录一次对用户来说确实虐心。

参考文章:
http://blog.csdn.net/xc765926174/article/details/51397847





分享本文至:

WRITTEN BY

avatar
本文标签:androiddata
看了本文是不是觉得很赞,那就赶紧点击下面按钮分享给身边的朋友吧!

欢迎留言




用户登录

sitemap