ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从H5跳转到小程序只需一行代码?weixin-js-sdk的launchMiniProgram与wx.miniProgram API详解

从H5跳转到小程序只需一行代码?weixin-js-sdk的launchMiniProgram与wx.miniProgram API详解 从H5跳转到小程序只需一行代码weixin-js-sdk的launchMiniProgram与wx.miniProgram API详解【免费下载链接】weixin-js-sdk微信官方 JS-SDK 的 CommonJS 版本支持 TypeScript项目地址: https://gitcode.com/gh_mirrors/wei/weixin-js-sdkweixin-js-sdk是微信官方 JS-SDK 的 npm 安装版支持 CommonJS 和 TypeScript。在 H5 页面中调用wx.launchMiniProgram一行代码即可跳转到小程序而wx.miniProgram则能让嵌在小程序里的 H5 页面自由导航、传值。本文带你一次搞懂这两套 API 的参数、原理和常见坑 weixin-js-sdk 是什么为什么值得装很多同学在微信 H5 开发中需要调用原生能力支付、分享、跳小程序等传统做法是把官方 js-sdk 的文件手动拷贝到项目里。而weixin-js-sdk直接把官方 JS-SDK 发布到了 npm让 H5 跳转小程序这类功能可以像普通依赖一样管理 它的核心优势npm 安装一条命令完成不再手动拷贝 js 文件CommonJS / ES Module 双支持require和import都能用天然适配 webpack、browserify自带 TypeScript 类型定义index.d.ts 提供完整的接口类型提示npm install weixin-js-sdk// CommonJS var wx require(weixin-js-sdk); // ES Module import wx from weixin-js-sdk;⚠️ 注意该 SDK 只能运行在微信客户端内源码会检测 UserAgent 中的 micromessenger 标识在普通浏览器中调用不会生效。H5 跳小程序wx.launchMiniProgram 一行代码实现基本用法在 H5 页面里跳转到指定小程序只需要调用wx.launchMiniProgram并传入目标小程序的 AppID 和页面路径wx.launchMiniProgram({ targetAppId: wx1234567890abcdef, // 目标小程序 AppID path: pages/index/index?id1, // 跳转的小程序页面及参数 envVersion: release, // 环境版本 success(res) { console.log(跳转成功); }, fail(err) { console.log(跳转失败, err); } });参数速查表参数类型说明targetAppIdString必填要跳转的小程序 AppIDpathString打开的小程序页面路径支持携带 query 参数不填则默认打开首页envVersionString要打开的小程序版本release正式版 /trial体验版 /develop开发版successFunction成功回调可用于埋点统计failFunction失败回调建议接入日志方便排查completeFunction无论成功失败都会执行源码里的一个隐藏细节 在 index.js 中可以看到launchMiniProgram的真实实现SDK 会把path自动拼接上.html后缀再交给微信客户端处理这是历史版本兼容逻辑。也就是说你只需传标准的小程序路径拼接工作 SDK 帮你做了不需要手动处理。使用前提平台层面页面必须在微信客户端内打开公众号文章、公众号菜单、朋友圈卡片等入口均可公众号与目标小程序需要完成关联关系否则跳转会被拦截建议先完成wx.config初始化再调用业务接口wx.miniProgram小程序内嵌 H5 的 7 大导航 API如果说launchMiniProgram解决的是「H5 → 小程序」那wx.miniProgram解决的是反向问题当你的 H5 页面被小程序通过web-view组件加载时如何在 H5 里操作小程序wx.miniProgram提供了 7 个方法实现见 index.js方法作用类比小程序原生 APInavigateBack返回小程序上一页可通过delta指定返回层数wx.navigateBacknavigateTo跳转到小程序新页面wx.navigateToredirectTo关闭当前页并跳转wx.redirectToswitchTab跳转到小程序 tab 页wx.switchTabreLaunch关闭所有页面并重新打开wx.reLaunchpostMessage向小程序发送数据小程序在bindmessage中接收—getEnv判断当前是否运行在小程序环境中—示例 1H5 里打开小程序的另一个页面wx.miniProgram.navigateTo({ url: /pages/detail/detail?id42, success() { console.log(页面跳转成功); } });示例 2判断运行环境做兼容必备同一个 H5 页面可能既跑在微信浏览器里也跑在小程序 web-view 里用getEnv就能优雅区分wx.miniProgram.getEnv(res { if (res.miniprogram) { console.log(当前运行在小程序中); } else { console.log(当前运行在微信浏览器中); } });其实现原理很简单index.js读取微信注入的全局变量__wxjs_environment值为miniprogram即表示处于小程序环境。新手最容易踩的 3 个坑1️⃣ 在非微信环境测试回调「静默失败」在 Chrome 里调试时WeixinJSBridge不存在接口不会报错也不会有回调。请直接用微信「开发者工具」或真机扫码预览。2️⃣ TypeScript 项目中launchMiniProgram缺少类型声明检查 index.d.ts 可以发现wx.miniProgram的 7 个方法都有完整类型定义index.d.ts但launchMiniProgram并未包含在类型声明中TS 项目直接调用会报「属性不存在」。解决办法是在自己的 d.ts 中补充一条声明即可。3️⃣ envVersion 忘了切换开发联调时如果小程序改动了页面路径而 H5 里envVersion还是release就会跳转到旧版页面表现为「参数不生效」「页面打不开」。联调阶段建议临时切到trial或develop。核心文件速查文件说明index.jsSDK 主入口CommonJSlaunchMiniProgram在 L583-L601wx.miniProgram在 L624-L685index.original.js未压缩的源码参考版排查问题时可对照阅读index.d.tsTypeScript 类型定义miniProgramMethods接口在 L577-L590package.json当前版本 1.6.5MIT 协议README.md安装与基本用法说明总结H5 跳小程序→wx.launchMiniProgram传targetAppIdpath一行代码搞定注意先完成公众号与小程序的关联小程序内 H5 导航→wx.miniProgram7 个方法覆盖跳转、返回、切 tab 和数据通信类型安全→ 依赖自带的 index.d.tslaunchMiniProgram需自行补充声明掌握这两个 API公众号 H5 与小程序之间的跳转、联动就不再是难题可以开始动手改造你的项目了 【免费下载链接】weixin-js-sdk微信官方 JS-SDK 的 CommonJS 版本支持 TypeScript项目地址: https://gitcode.com/gh_mirrors/wei/weixin-js-sdk创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表