实现通过网页中的链接启动APP

在做APP开发的时候,我们经常会遇到这样的需求,就是通过点击网页中的链接来实现启动一个具体的APP。这里举一个简单的例子目前有一个APP A,如果这个这个APP “A”是我们自己开发的APP 该如何实现?如何这个APP “A”是其他公司开发的,也就是说 如果这个APP我们是无法改动源码的我们该怎么样实现呢?

首先我们来实现场景1,APP “A” 是我们自己开发的我们可以改动APP的源代码和配置。
首先在APP中创建一个Activity “LaunchActivityByBrowerLink”

接下来在Mainfest 配置这个activity:

我们可以看到在这个APP定义了data这个属性定义了scheme,合格参数就类似于URL中”http”,host类似于服务器地址,pathPrefix “/openothers” 就是path.通过data定义的属性就可以发现已经有一个完整的URL了 “coolbeetle://mmmkapp/openothers”。
所以在HTML页面加个连接 “直接启动APP ”

首先我们来实现场景2: 当这个应用”A” 是别人开发的我们无法添加场景1中所提到的配置,是不是就不能通过网页的形式来启动了呢?答案是可以的,我们可以先想象哪里有类似的场景。其实就是我们常用的应用管理软件,如”豌豆荚”、”google play” 等。他们的应用就直接启动我们手机上安装的应用,为什么可以呢?答案就是Android中的PackageManager,请看如下代码:

上面的代码告诉我们我们可以代码先获取APP “a”的 “packageName”
在继续看下面的代码:

我们可以看到通过上面的代码可以看到 APP “A”的 className
想象当我们有了APP的 className 和 packageName之后我们是否可以启动了这个APP呢? 答案是当然可以 因为在Android中我们有 Intent 和CompnentName 见如下代码:定义了一个Activity来启动APP A

如此一来在场景1中我们可以启动一个我们自己的应用A 通过我们自己的应用A中的一个Activity就可以启动我们手机上安装的任何应用了。
其实到这里我们也可以看到做到场景2的效果,有一个条件,就是这个HTML页面必须是我们自己可以改动源码应用的一部分,例如作为应用的一个页面是通过webview来呈现的,我们自己的应用是作为中间一个桥梁作用的体现。
最后说明,如果这个应用A虽然我们不能改动源码,但是开发这个应用的人员也预留了URI来供请求,就不需要上面场景2中的开发步骤了!

文章的代码顺序通常也是实现功能基本的思路。如转载,请指明转载此文章的地址。
本片文章中的代码片段是作者项目中的一些剪辑,如果需要完整代码,可以在关于作者页面找到联系方式,来联系作者获取免费的实例完整代码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值