微信网页开发调用微信jssdk接口遇到的坑以及最终解决方法 (持续更新)
1.微信网页开发调用jssdk时报permission denied
大致是两个原因
(1)首先注册时未将你所调用的接口名字添加至jsApiList
(2)第二个就是你的这个公众号没有权限使用这个api,例如在开发环境中的微信页面就无法调取这个api,需要发布后,到对应的有权限的公众号中再打开对应的界面,调用api才成功
2.微信jssdk 使用微信内置地图查看位置【openLocation】接口 最终显示不精确
项目开发中,web端调用的是百度地图api,而微信项目中调用的是腾讯自己的地图,两者所使用的坐标系有所不同,百度用的是自己的百度坐标系,而高德地图和腾讯地图使用的是火星坐标系,两者之间需要做一下转换
火星坐标 转换到 百度地图坐标
function huoxingToBaidu(hxLongitude, hxLatitude){ var X_PI = Math.PI * 3000.0 / 180.0; var x = hxLongitude, y = hxLatitude; var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * X_PI); var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * X_PI); var bdLongitude = z * Math.cos(theta) + 0.0065; var bdLatitude = z * Math.sin(theta) + 0.006; return { bdLongitude: bdLongitude, bdLatitude: bdLatitude }; }
百度地图坐标 转换到 火星坐标
function baiduToHuoxing(bdLongitude,bdLatitude) { var X_PI = Math.Pi * 3000.0 / 180.0; var x = bdLongitude - 0.0065; var y = bdLatitude - 0.006; var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * X_PI); var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * X_PI); var hxLongitude = z * Math.cos(theta); var hxLatitude = z * Math.sin(theta); return { hxLongitude: hxLongitude, hxLatitude: hxLatitude } }
3.微信JSSDK 预览图片【previewImage】接口的坑, 安卓手机上,图片预览需要点击两次才能退出预览
在微信网页开发过程中,测试提出的一个bug,在微信中预览图片是,点击图片,打开图片正常,当再次点击时,原本应该直接退出图片预览,但是却需要点击两次才能退出预览。
分析原因
应该是 previewImage 这个接口调用了两次,进行了图片的叠加。所以需要两次才能退出
最终得出的结果
代码中实际上只调用了一次。
- 在Android系统的手机中,其实微信点击网页的图片会自动调用这个接口一次。然后代码中又对对这个接口调用了一次,这就造成了以上的结果。
- 但是在ios系统的手机中,微信并不会调用这个接口。
解决方案
在方法的最前面进行手机系统的判断,当是Android系统直接return。
然后在在下面进行微信的previewImage接口的调用
js判断是Android还是ios
var u = navigator.userAgent;isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1, //android终端isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
2018.8.1更新
这个bug好像微信自己修复了,现在无论Android还是ios,如果不调用这个方法,微信自己不会去调用了。
微信网页开发调用微信jssdk接口遇到的坑以及最终解决方法 (持续更新)相关推荐
- 微信网页开发(4)--使用JSSDK基础接口
点此查看 微信公众号/微信网页/微信支付/企业微信/小程序开发合集及源代码下载 本文目录 1. JSSDK接口 2. 基础接口 3. 开发流程 3.1 绑定域名 3.2 引入JS文件 3.3 通过co ...
- 基于vue-cli的微信网页开发中的js-sdk的使用
参考文档:微信公众平台.踩坑记录 一.简介 JS-SDK需要向服务端获取签名,且获取签名中需要的参数包括所在页面的url,但由于单页应用的路由特殊,其中涉及到iOS和android微信客户端浏览器内核 ...
- 微信网页开发:微信内h5使用wx-open-launch-weapp打开小程序,微信内h5使用wx-open-launch-app打开App的方案
需求场景: 当我们需要使用在微信客户端打开的h5页面,在页面上打开微信小程序或者唤起App时,我们需要使用微信js-sdk提供的开放标签能力.这其中:使用wx-open-launch-weapp标签打 ...
- 微信小程序那点事儿(必看踩坑实用解决BUG)------持续更新(2)
目录 wx.getSystemInfo(Object object) & Object wx.getSystemInfoSync() onShareAppMessage 分享 setNavig ...
- 微信网页开发--仿美团、饿了么红包分享
需求 这个月,公司做了一个3.8女王节的活动.当时的需求是一个水果接龙的小游戏.比如,我发起了一条接龙,然后我把这个链接分享出去,A点击这个链接就可以看见我输入的水果,然后A再分享这个链接给B,B就可 ...
- 微信昵称乱码 mysql_微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案...
微信网页开发获取用户昵称乱码 微信昵称包含emoji表情乱码的解决方案如下: 问题产生原因:由于数据库及属性一致设为utf8,而utf8只支持1-3个字节.当用户昵称为emoji表情时,获取用户基本信 ...
- 微信开发 --- 调用微信上传图片接口,并保存到自己的服务器
微信开发 - 调用微信上传图片接口,并保存到自己的服务器 整体思路是这样的: 1.先把手机上的图片上传到微信服务器,然后返回一个图片ID 2.在通过后台根据ID从微信后台拿到流,保存到服务器 前几个步 ...
- 前端vue+后台node实现获取微信用户基本信息+调用微信JS-SDK(下篇)
1. 获取微信用户基本信息 2. vue接入微信JS-SDK 环境: 前端:vue2.0 后台:node.js 公众号:微信提供的测试号 以分享至微信和分享至朋友圈为例. 微信网页接入微信JS-SDK ...
- 微信网页开发wx.chooseImage多图上传、预览(已解决)
需求: 1.调用微信jsSDK选图或者拍照(选图支持选多图) 2.选图或者拍照后提供预览,但不把图片下载到服务器 3.提交表单的时候再一并提交,把图片下载到服务器 4.支持编辑页面删除已选图片(此图已 ...
最新文章
- IBS illustrator for the presentation and visualization of biological sequences 中山大学
- Java:希望每天叫醒你的不是闹钟而是梦想!
- 【产品环境】使用ELK搭建日志系统
- AndroidStudio修改默认C盘配置文件夹(.android.gradle.AndroidStudio)以及修改后避免踩的坑
- 仅剩3天 | 带学《百面机器学习》葫芦书,算法+leetcode一应俱全
- lucene3.0_IndexSearcher排序
- SQL Developer 使用问题与解决方法汇总
- [LeetCode] 47. Permutations II_Medium tag: DFS, backtracking
- Java的日期格式化常用方法
- cache数据库教程
- 笔记本电脑显示打印机服务器关闭,电脑打印机服务能设定自动关闭吗
- (2)海思烧写工具Hitool工具使用
- 破产问题 (The Bankruptcy Problem)
- Apache Solr 建立 HBase 二级索引
- 计算机单位 字节,字节是什么意思?字节是什么单位
- 《给李彦宏先生的一封信》
- nepctf pwn easystack(_stack_chk_fail)
- Pocket英语语法---六、感官动词接不同的动词表示什么意思
- 阿里云服务器安装mysql数据库教程
- 大纲笔记转换为思维导图的,不仅仅只有幕布才能实现