这个方法使用的是微信官方api 请求url scheme 实现的?
因为前端请求在手机上会有跨域错误? 所以请求代码放到了后端
后端不会写? 但是后端需要调用的api及参数如下?
首先拿到小程序的access_token? 这个也是后端调用 微信官方api拿到的??
拿到后 调用? ?看官方文档比较省劲??
https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN
前端调用例子
$.post('https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN', {
"jump_wxa":
{
"path": "/pages/home",
"query": "",
"env_version": "release"
},
"is_expire":true,
"expire_type":1,
"expire_interval":1
}, function(res) {
// 请求成功后的处理逻辑
location.href = res.data
}, "json")
.done(function() {
// 请求成功完成后的操作
console.log("请求成功完成");
})
前端代码只做最后的请求跳转?
<script>
$(function() {
if (isPCBrowser()) {
console.log('当前在PC浏览器中打开');
$('.box').hide()
$('.boxToo').show()
} else {
console.log('当前不在PC浏览器中打开');
$('.boxToo').hide()
$('.box').show()
getOpenLink()
}
});
// 判断是否在pc浏览器中打开
function isPCBrowser() {
const userAgent = navigator.userAgent || navigator.vendor || window.opera;
// 判断是否是PC浏览器
return /android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos/i.test(userAgent) === false;
}
function getOpenLink() {
$.post('https://url', {}, function(res) {
// 请求成功后的处理逻辑
location.href = res.data
}, "json")
.done(function() {
// 请求成功完成后的操作
console.log("请求成功完成");
})
.fail(function(err) {
// 请求失败后的操作
console.log("请求失败",err);
})
.always(function() {
// 不论请求成功还是失败,执行的操作
console.log("请求完成");
});
}
</script>