深山工作室

深山工作室 > 微信小程序开发

静态网站利用微信URL Scheme生成的ticket从浏览器h5跳到微信小程序完整代码

静态网站利用微信URL Scheme生成的ticket从浏览器h5跳到微信小程序完整代码

1.使用微信云开发托管静态网页:

微信相关的浏览器可以获得免鉴权能力跳转任意小程序,普通浏览器只能跳转自己的小程序。
静态网站H5跳小程序,阅读微信官方文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/staticstorage/jump-miniprogram.html


2.用URL Scheme获取ticket跳转小程序的进行跳转。
附上urlscheme.generate微信文档参考: https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/url-scheme/urlscheme.generate.html#method-http

操作分为两步:
第一步:通过小程序appId和secret获取token(微信接口)https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=&secret=
第二步:调用获取跳转小程序scheme的接口(微信接口)https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN

其它文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html#21



附上ASP获取h5跳转小程序全部代码

<%
qwbmwxappid = "wxc4534166201a11111"
qwbmwxappsecret = "d838f26dcfffe3d42222"
strJson=GetURL("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="& qwbmwxappid &"&secret="& qwbmwxappsecret &"")
if InStr(strJson,"errcode")>0 then
else
Call InitScriptControl:Set objTest = getJSONObject(strJson)
qwbmwxaccesstoken = objTest.access_token '获取新Access_token
end if

expire_time = ToUnixTime(DateAdd("d",30,now)) '有效期30天

qrjson = "{""jump_wxa"":{""path"": ""/pages/kecheng/index/index"",""query"": """"},""expire_time"":"& expire_time &"}"
strJson=PostURL("https://api.weixin.qq.com/wxa/generatescheme?access_token=" & qwbmwxaccesstoken,qrjson)
Call InitScriptControl:Set objTest = getJSONObject(strJson)
gotourl = objTest.openlink '这个就是获取跳转地址
%>
<a href="<%=gotourl%>">打开小程序</a>


每天生成 URL Scheme 和 URL Link 总数量上限为50万
自 2022 年 4 月 11 日起,URL Scheme有效期最长 30 天,不再支持永久有效的URL Scheme、不再区分短期有效URL Scheme与长期有效URL Scheme。若在微信外打开,用户可以在浏览器页面点击进入小程序。每个独立的URL Scheme被用户访问后,仅此用户可以再次访问并打开对应小程序,其他用户无法再次通过相同URL Scheme打开该小程序。 在本次规则调整生效前已经生成的URL Scheme,如果有效期超过30天或长期会被降级为30天有效,只能被1个用户访问,开始时间从调整日期开始计算。 详细调整说明可见《小程序链接生成与使用规则调整公告》。

通过服务端接口可以获取打开小程序任意页面的 URL Scheme。适用于从短信、邮件、微信外网页等场景打开小程序。 通过 URL Scheme 打开小程序的场景值为 1065
生成的 URL Scheme 如下所示:weixin://dl/business/?t= *TICKET*
用户无法通过 Scheme 正常打开小程序,开发者需要使用 H5 页面中转,再跳转到 Scheme 实现打开小程序,跳转代码示例如下:
location.href = 'weixin://dl/business/?t= *TICKET*'
该跳转方法可以在用户打开 H5 时立即调用,也可以在用户触发事件后调用。
这种形式的微信 scheme,来完成启动并跳转到微信的。 微信内部会对Scheme的信息进行解密,解密出ticket中包含的URL来加载。

Web 启动微信测试代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>跳转中</title>
</head>
<body>
<div class="page__hd" align="center">
<h3 align="center" style="padding:30px;">正在打开微信请稍等...</h3>
<a href="javascript:;" class="weui-btn weui-btn_primary weui-btn_loading" onClick="toweixin();" style="width: 60%">重新打开微信</a><br>
</div>
<script>
setTimeout(toweixin());
function toweixin(){window.location.replace('weixin://dl/business/?ticket=t852de9efd9b1111111');}
toweixin();
</script>
</body>
</html>


所以通过这种方式,就可以完成微信跳转并加载我们想要的网页了。

更多>>微信小程序开发相关信息
在Android、iOS、Windows、MacOS中微信小程序的文件存放路径
静态网站利用微信URL Scheme生成的ticket从浏览器h5跳到微信小程序完整代码
定制开发微信小程序的操作流程
微信小程序腾讯视频播放组件tencentvideo(wxa75efa648b60994b)
微信小程序直播组件live-player-plugin(wx2b03c6e691cd7370)
更多>>最新添加
在Android、iOS、Windows、MacOS中微信小程序的文件存放路径
python通过代码修改pip下载源让下载库飞起
python里面requests.post返回的res.text还有其它的吗
aliyun阿里云续费域名优惠口令(注册、续费都可以使用)
windows7环境下安装配置jdk