微信小程序、app之间的跳转 您所在的位置:网站首页 微信小程序跳一跳怎么自动跳 微信小程序、app之间的跳转

微信小程序、app之间的跳转

2023-05-24 17:29| 来源: 网络整理| 查看: 265

1.微信小程序 --> 微信小程序(之前有须为同一公众号下的小程序这一限制,现在可随意跳转)

首先说一下到另一个小程序需要的东西:

跳转目标小程序的APPID

使用navigator组件或者微信小程序API(wx.navigateToMiniProgram)

一、如何获取目标小程序APPID(以微信读书微信小程序为例)   

二、实现跳转

​ 方法一:组件实现(在项目对应的 wxml 中使用 navigator 标签进行配置)

打开另一个小程序

​ 方法二:js实现(给跳转按钮绑定事件函数,在事件函数中调用下面的api)

wx.navigateToMiniProgram({ appId: '',//要打开的小程序 appId path: 'page/index/index?id=123',//打开的页面路径,如果为空则打开首页 extraData: { foo: 'bar'//需要传递给目标小程序的数据,目标小程序可在 App.onLaunch,App.onShow 中获取到这份数据 }, envVersion: 'develop',//要打开的小程序版本。develop 开发版、trial 体验版、release 正式版。仅在当前小程序为开发版或体验版时此参数有效。如果当前小程序是正式版,则打开的小程序必定是正式版。 success(res) { // 打开成功 } })

​ 另: 如果打开之后想返回之前的小程序 使用 wx.navigateBackMiniProgram

返回到上一个小程序,只有在当前小程序是被其他小程序打开时可以调用成功

​ 跳转效果在开发者工具中预览不出,在真机上可进行效果预览

说明:①从 2020 年 4 月 24 日起,使用跳转其他小程序功能将无需在全局配置中声明跳转名单,调用此接口时将不再校验所跳转的 AppID 是否在 navigateToMiniProgramAppIdList 中。②从 2020 年 4 月 24 日起,跳转其他小程序将不再受数量限制,使用此功能时请注意遵守运营规范。

在老版本小程序中,需要在app.json全局配置中设置白名单,如下所示:

"navigateToMiniProgramAppIdList": [ "wx9fbad659d526c9bc", "wx66d9cf3762c49a1a", "小程序APYID" ]

关于以上说明详情参考:https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html

2.微信小程序 app(根据官方说明不能由小程序跳转至任意app,只能跳回app,也就是只能从app跳至小程序,再由小程序跳回app)

打开APP功能需要用户主动触发才能打开 APP,所以不由 API 来调用,需要用 open-type 的值设置为 launchApp 的 button 组件的点击来触发。

当小程序从 APP 打开的场景打开时(场景值 1069),小程序会获得返回 APP 的能力,此时用户点击按钮可以打开拉起该小程序的 APP。即小程序不能打开任意 APP,只能 跳回 APP。

在一个小程序的生命周期内,只有在特定条件下,才具有打开 APP 的能力,这个能力的规则如下:

当小程序从 1069 场景打开时,可以打开 APP。

当小程序从非 1069 的打开时,会在小程序框架内部会管理的一个状态,为 true 则可以打开 APP,为 false 则不可以打开 APP。这个状态的维护遵循以下规则:

当小程序从以下场景打开时,保持上一次打开小程序时打开 App 能力的状态: 从其他小程序返回小程序(场景值1038)时(基础库 2.2.4 及以上版本支持)小程序从聊天顶部场景(场景值1089)中的「最近使用」内打开时长按小程序右上角菜单唤出最近使用历史(场景值1090)打开时发现栏小程序主入口,「最近使用」列表(场景值1001)打开时(基础库2.17.3及以上版本支持)浮窗(场景值1131、1187)打开时(基础库2.17.3及以上版本支持) 当小程序从非以上场景打开时,不具有打开 APP 的能力,该状态置为 false。

img

使用方法 小程序端

需要将 button 组件 open-type 的值设置为 launchApp。如果需要在打开 APP 时向 APP 传递参数,可以设置 app-parameter 为要传递的参数。通过 binderror 可以监听打开 APP 的错误事件。

app 端

APP 需要接入 OpenSDK。 文档请参考 iOS / Android

Android 第三方 app 需要处理 ShowMessageFromWX.req 的微信回调,iOS 则需要将 appId 添加到第三方 app 工程所属的 plist 文件 URL types 字段。 app-parameter 的获取方法,参数解析请参考 Android SDKSample 中 WXEntryActivity 中的 onResp 方法以及 iOS SDKSample 中 WXApiDelegate 中的 onResp 方法。

示例代码 打开APP Page({ launchAppError (e) { console.log(e.detail.errMsg) } }) error 事件参数说明 值说明invalid scene调用场景不正确,即此时的小程序不具备打开 APP 的能力。

所以要实现小程序跳转至app大概有以下几种思路:

1、利用官方api

就是上面提到的官方解决方案。需要app接入开放平台,并且与小程序属于同一账号下。最主要的问题是该方案仅适用于通过app打开小程序,或者通过app分享的卡片打开小程序,其他情况无法跳转,故在常用的场景下,该方案基本不可行。

2、利用webview网页跳转

我们可以在手机默认浏览器中直接在一个网页中打开app;那么在微信小程序web-view中是否可以呢?实际上web-view有大量权限限制,基本除了展示信息,其他交互都需要通过小程序原生代码实现。

3、利用默认浏览器跳转

在手机默认浏览器中,我们可以直接在一个网页中打开app;但是微信小程序做了限制,不允许跳转到默认浏览器,故该方案不可行。

4、利用应用宝跳转

应用宝是腾讯的,是否可以跳转到应用宝,然后打开app或下载呢?然而由于网页域名鉴权,除了腾讯自家的部分特殊小程序,其他小程序都是无法跳转的。

以上4种方案基本不可行,后来看到一篇博客写的使用小程序客服功能(原文:https://itlao5.com/wp/933.html),就试了下,发现真的可以,但是这种方案也有比较明显的缺点。

5、利用小程序客服的功能

小程序有小程序客服这个功能,而小程序客服是微信中的一个类似于公众号的功能;我们知道公众号是可以间接跳转到app的,那么跳转app的方案就出来了,小程序先打开客服页面,然后在客服页面通过关键字回复一个url(或卡片),点击url(或卡片)跳转到app推广链接,然后就可以打开或下载app了。

方案有了,那么该尝试下如何实施了:

(1)先跳转到微信小程序客服

官方提供了button可以直接跳转,设置open-type='contact’即可:

点击进入【APP】

(2)跳转到微信小程序客服,输入关键字回复app下载宣传页或宣传二维码

客服会话关键词回复,这个小程序官方的仅支持文字回复,建议使用api接口来实现卡片或图片回复,可以自己开发,也可以用第三方平台,如:芝麻服务助手、知己助手等,反正就是搜索微信小程序客服,可以出来一大堆。

(3)这个方案缺点也很明显,就是操作步骤过多,还有一个就是无法精准定位到具体app页面,比如我在看某篇文章,点击打开app其实是希望还是进入到app的这篇文章页面,使用客服功能就不容易做到。

但是在目前无法做到十全十美的方案下,该方案也可以变通解决。

img

案缺点也很明显,就是操作步骤过多,还有一个就是无法精准定位到具体app页面,比如我在看某篇文章,点击打开app其实是希望还是进入到app的这篇文章页面,使用客服功能就不容易做到。

但是在目前无法做到十全十美的方案下,该方案也可以变通解决。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有