|
微信的程序开放能力这几年一直在收紧,H5想跳小程序,程序规则也改了好几轮。程序现在最靠谱的程序路子就一条:用微信官方给的URL Scheme。 URL Scheme长这样:weixin://dl/business/?程序t=xxxxxxx。你拿它放在短信、程序邮件、程序甚至知乎回答里,程序用户点一下,程序微信会弹个确认框,程序问“是程序否打开小程序”。这个方案2018年就有了,程序但早期只给电商类目用,程序后来才放开。程序不过有个坑——它不能直接用在微信内部的程序H5里。你在公众号文章里塞这个链接,微信会直接屏蔽,提示“已停止访问”。 那微信里的H5怎么跳?得用微信JS-SDK的wx.miniProgram.navigateTo。前提是H5得在微信内置浏览器里打开,而且得跟小程序绑定同一个公众号。操作流程是这样:先去公众平台把H5的域名配到业务域名里,然后在H5页面引入JSSDK,调接口拿签名。签名这步最烦人,得后端配合,前端把当前页面的URL发给后端,后端用jsapi_ticket算出签名再返回来。搞完这些,H5里就能直接跳了,用户无感知,体验最顺。 但现实中大部分H5都是分享到朋友圈、或者从短信点开的,根本没在微信里。这时候就得走URL Scheme,但有个致命限制:只有通过微信认证的企业小程序才能申请,个人小程序没资格。而且申请时得填使用场景,审核挺严,我见过不少因为“涉及诱导分享”被拒的案例。 还有个偏门招,用云开发的静态网站托管。你在小程序后台开通云开发,把H5托管到云开发的域名下,那这个H5天然就跟小程序同源,直接调navigateTo就能跳,连业务域名都不用配。适合那些不想折腾后端的个人开发者,但前提是你得用云开发,不然没戏。 说个真实踩坑经历。之前做个活动页,甲方要求从短信点链接直接进小程序商城。我一开始图省事,直接把小程序路径拼成weixin://dl/business/?t=xxx发出去,结果iOS上正常弹窗,安卓直接白屏。后来查文档才发现,安卓端必须用weixin://dl/business/?t=这个格式,但iOS认的是weixin://dl/business/?t=后面跟的ticket参数,得用后台generateScheme接口现生成,不能拿固定的。而且这个ticket有效期只有30天,过期了得重新生成,得写个定时任务去刷。 最后提醒一句,无论哪种方式,都别想着在H5里静默跳转。微信现在对跳转的管控很严,要么弹窗让用户确认,要么得用户主动点按钮。那些声称能“无感跳转”的第三方工具,大概率是用了违规的接口,封号风险极高。老老实实用官方渠道,虽然麻烦点,但至少不会半夜收到封禁通知。 |