在普通的Html5页面中如何实现点击URL链接直接进入微信小程序,不需要扫描小程序二维码?
网上介绍的很多方法是在小程序后台设置Schema,不过我进入我的小程序后台在开发设置里面
没有找到设置小程序Schema的地方,我是通过调用API接口获取的,下面是实现的方法(接口
参考
https://developers.weixin.qq.com/minigame/dev/api-backend/open-api/url-scheme/urlscheme.generate.html
):
String accessToken = WeixinAccessTokenUtil.getMicroAccessToken(accountId);
com.alibaba.fastjson.JSONObject json = new com.alibaba.fastjson.JSONObject();
//String path = "/pages/order/index";
//String query="";//传递参数
com.alibaba.fastjson.JSONObject wxaJson = new com.alibaba.fastjson.JSONObject();
wxaJson.put("path",path);
wxaJson.put("query",query);//带定制化参数
json.put("jump_wxa",wxaJson);
HttpClientUtil client = new HttpClientUtil();
String result = client.doPostJson(url+accessToken,json,"utf-8");
在上面的代码中,首先根据小程序配置获取accessToken。获取accessToken的具体实现就不贴代码了,这个大家应该都知道如何实现。后面是根据API接口构造请求,从返回的结果中获得schema。返回的json是这种格式:
{"errcode":0,"errmsg":"ok","openlink":"weixin:\/\/dl\/business\/?t=xxxxxxx"}
openlink的值就是schema的信息,反斜线是转义字符,实际上schema的格式是:
weixin://dl/business/?t=xxxxxx,在网页中使用a href="weixin://dl/business/?t=xxxxxx" 就可以跳转
到微信小程序。在上面的接口调用示例中,为了简单起见,没有设置schema的过期时间,也没有
设置query参数。大家可在具体项目中自行完善。