很久没有写过文章啦,但是写文章是一个好习惯,能帮助你把学到的东西进一步掌握。以后遇到问题,解决后一定要写个文章。
公司有一个需求,是在我们的app1中有个按钮,点击会打开我们的app2。 在uniapp的文档中我找到了怎么去实现。
首先贴出我参考的3个文档
①uni-app 中如何打开外部应用,如:浏览器、淘宝、AppStore、QQ等
https://ask.dcloud.net.cn/article/id-35621__page-2
②Android平台设置UrlSchemes,实现被第三方应用调用
https://ask.dcloud.net.cn/article/id-409
③分享mui启动第三方应用遇到的坑 android&ios
https://ask.dcloud.net.cn/article/12762
需要提一下,我这个app没有ios版本,所以ios我没有测试 。如果大家有ios的,那么大家自己试一下吧。
Android平台实现:
看到文档写的都要配置Schemes ,我发现配置这个,好像是给ios用的。
其实Android的实现很简单。我们只需要 要打开的app2的包名,这个在应用打包的时候可以看到
然后,我们app1需要执行打开的时候, 去执行这个代码,这个是h5的api,所以不能在小程序使用。 我们可以条件编译“//#ifdef APP-PLUS”
//#ifdef APP-PLUS
plus.runtime.launchApplication(
{//打开app2
pname: 'uni.UNICC859ED'
},
function(e) {
//打开失败时
console.log(e);
}
);
//#endif
打开失败的需要大家根据自己的需求写。这样Android就搞定了。
IOS:
首先我们需要在app2的manifest.jso里配置我们的Schemes
可以参考②
yssjsd 是我设置的schemes 名字,
然后,我们app1需要执行打开app2的时候, 去执行
plus.runtime.launchApplication(
{//打开app2
action: 'yssjsd://'
},
function(e) {
//打开失败时
console.log(e);
}
);
IOS应该是这样的,但是我没有测试,如果大家有需求,那么大家自己试一下吧。