微信公众号开发指南
本文于 1707 天之前发表,文中内容可能已经过时。
微信浏览器?啊,它是什么,好不好用,能吃不?我记得有个说法是这么评价微信浏览器的,微信浏览器就是移动端IE6。是程序员就知道IE什么样,好不好用。面向IE开发,我们经常会写出稀奇古怪的bug代码,同样的,基于微信浏览器开发也会BUG百出。因此,很有必要整理一些基于微信浏览器的开发技巧和开发问题。
开发问题
vue 路由采用 history 模式在IOS中签名失败 Android签名良好
基于微信公众号开发,我们经常会使用到分享、上传图片等功能,然而这种种功能都需要微信签名。提到签名,我们应该就会遇到签名失败的情况。接下来我们说说 vue 路由采用 history 模式在IOS中签名失败,Android签名良好的情况。
原因
history 模式下视图是通过 pushState 来切换的,但IOS手机在微信浏览器中记录的 URL 只会是第一次进入时的URL,所以在IOS中,无论你路由怎么切换。真实的URL都是第一次进入应用时的URL。
解决办法
每次路由变化时都重新请求下签名,同时在路由钩子函数里改写一下路由:
// beforeRouter
if (isWeixin() && to.meta.wxSign && to.path !== location.pathname) {
location.assign(window.location.protocol + '//' + window.location.host + to.fullPath)
} else {
next();
}
两(多)张两张二维码无法在同一屏幕视窗中共存
同一屏幕视窗”是指微信内置浏览器中在当前的手机屏幕上显示的可见范围,我们发现,当同一同一屏幕视窗中存在两个或以上的二维码的时候,微信客户端就会识别错误,无论你按哪个二维码长按识别,识别出来都是同一个目标。这个问题在 iOS 版(iPhone)微信2.2及安卓版上均有。
原因
长按的时候相当于将当前手机屏幕截屏,识别截屏后的图片,这样一张图片有两个二维码图的时候当然只会识别出一个。
解决办法
不要将两个二维码共存在同一个页面中。
微信只调用相机不使用相册时,安卓会退出并刷新页面
解决办法
相机和相册两者都加上!
评论系统未开启,无法评论!