关于在微信分享页中唤醒app的实现(安装则唤醒并根据参数不同打开指定页面,未安装则跳转至下载页供用户下载。)

一:思路

做这个功能之前,在网上搜了一些解决办法以及相应的博客。发现实现的方式是有些大同小异的,这里我只推荐其中的一种高效、快速的解决办法。

如果你的app是已在应用宝内上线的,那么你可以直接去申请应用宝中的微下载链接(一般你的boss都会申请,以作推广的。)如果未在应用宝内上线,你可以跟你的boss商量一下,把应用接入应用宝,在申请微下载。

二:实现

为什么要用这个微下载呢? 因为应用宝内部已经帮我们处理好了这一逻辑(有则唤醒app,无则跳转至下载页。)我们在分享页内只需使用 a标签 :href="jumpInMyApp", 或者 window.location.href="jumpInMyApp"这里的 jumpInMyApp 就是你的微下载链接。

那么其实到这里呢,其实你会发现你已经可以在微信分享页内打开你的app了,是不是特别简单呢?但是呢,到这里其实才是完成了其中的一小部分,当然,如果你得产品需求只是这样的话,那么恭喜你,你已经可以交工了。可我相信绝大部分的需求都还有个第三步,唤醒app并打开至指定页面。

三:scheme的来源与基本参数配置

不多说,推荐一篇非常好的博客,scheme来源

四:唤醒app并打开至指定页面

重点! 圈起来要记得。

首先,实现这功能我们需要额外申请一下应用宝的 Applink。
这是个微下载交流群 921933625,找到里面公告里面的 Applink链接申请 ,申请一下等待完成就可。
另:这个群文件里有个 Applink 接入文档,也可以自行查看。

ok,在有了我们的微下载链接以及scheme之后呢,我们就要拼接参数,且根据参数来进行跳转了。

微信开发这工具打开指定页面 微信打开app指定页面_android


红框部分是固定些部分(仅针对 安卓),你的微下载链接 ,后面的 val 是你的 scheme协议。


val

具体写法为这样:

"wzy://abc?id=8888&ids=xxxxx&....."

,这个伪协议中,

wzy://

就是你的scheme,后面的参数可根据项目来自行拼接。

这里有个注意点,在微下载链接后拼接你的 scheme 时,要将其先进行 转码,encode处理!!!,否则,你是无法获取到你拼接的参数的。
这些做完之后,我们就要处理我们前面拼接的这些参数了,是要根据这些参数来进行页面跳转的。

在 5+ App中,直接在 入口文件,App.vue中,进行参数的处理。 uni-app自行查看上面的推荐博客,也是类似,不多赘诉。

微信开发这工具打开指定页面 微信打开app指定页面_微信分享_02


拿到的参数是个字符串,可自行根据需求截取。也可自行打印 alert 来得到参数。如图,


微信开发这工具打开指定页面 微信打开app指定页面_App_03

这里有个注意点,在拿到参数之后,若是 vue 项目进行路由跳转时,会有个作用域的问题,需将 this在外重定义一下,否则无法跳转。

五:结尾

到这里,基本的功能就已全部实现,当然,还有别的稍复杂一些的需求,比如,用户在下载且安装好之后,也要跳转到那个分享的页面之类的,这里我就不过多的描述了,