微信js 接口 无法拉起,报错 invalid url domain
排查原因
1.从问题本质找问题。
查看 公众号后台配置中是否配置了你的域名。包含了3中类型。 一般拉不起来都是 js 安全域名的问题。
如果二级域名太多,就添加一级域名就好了。 比如 a.stuyun.cn 可以添加 stuyun.cn
注意:切记不要带着 http:// https:// 。如果有,去掉后再次尝试。
2.一般后台配置的没问题,代码中就不可能出现问题。当然也有二般情况。请看下方。
流程 打开页面的时候 就要把你需要的js 功能点 放入 jsApiList。
点击某一个功能的时候,然后拉起相关的操作。
// 获取微信配置参数
getWechatConfig() {
// 请求参数 hosid this.getUrl() 这个方法 很关键 请看下方方法
let hosId = “”****“”
ScanCodeService.getWeiXinJsConfig(hosId, this.getUrl()).then(result => {
if (result && result.data) {
let config = {
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: result.data.appId, // 必填,公众号的唯一标识
timestamp: result.data.timestamp, // 必填,生成签名的时间戳
nonceStr: result.data.noncestr, // 必填,生成签名的随机串
signature: result.data.signature, // 必填,签名,见附录1
jsApiList: ['openLocation'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 用什么 写什么 我这里是地图
};
/*eslint-disable*/
wx.config(config);
/*eslint-enable*/
}
});
}
// 这里就按我这样写,保证没有问题
getUrl() {
let href = window.location.href;
let i = href.indexOf('#');
let base = i >= 0 ? href.slice(0, i) : href;
return base;
},
//点击某一个地方的时候,这里就是具体功能点的时候 附带上方法我这里是调取的后端接口然后拉去的经纬度 下方会提供 java 后台方法 openMap 你页面上的点击事件 调用的方法
openMap(order) {
// 通过地址位置 找到 经纬度
var param = {
'address': 山东省"济南市浪潮路,
'output': 'json'
};
GeneService.getAddressJWD(param).then((result) => {
var data = result.data;
console.log(data.lat);
let mapData = {
// 目的地latitude
latitude: data.lat,
// 目的地longitude
longitude: data.lng,
name: order.orderReservePerson,
address: order.orderReserveAddress,
// 地图缩放大小,可根据情况具体调整
scale: 15
};
// 打开地图
/*eslint-disable*/
wx.openLocation(mapData);
/*eslint-enable*/
});
}
java 后台 免费换取经纬度的方法
,这里面 有一个要求 必须是火星坐标,你就用我这个方法就可以。
HttpUtil 是 cn.hutool.http.HttpUtil 包下的,自己添加依赖就好。
@ApiOperation("地址查经纬度")
public Result getAddressInfo(@RequestParam @ApiParam(value = "地址", required = true) String address,
@RequestParam @ApiParam(value = "类型", required = true) String output) {
Map map = new HashMap<>(2);
map.put("address", address);
map.put("output", output);
String sendResult = HttpUtil.get("http://api.map.baidu.com/geocoder", map);
JSONObject jsonObject = JSONObject.parseObject(sendResult);
JSONObject jsonObject1 = (JSONObject) jsonObject.get("result");
return Result.ok(jsonObject1.get("location"));
结束,有问题联系我。qq 1019011560 。
版权声明:本文为weixin_39793790原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。