微信公众号开发之坑(一)

有个说法是微信浏览器==移动端IE6。分享一下开发中遇到的坑

1.在本身的公众号能实现支付,从别的公众号进来不能支付。

既然本身的公众号能支付了,那么颇有多是跳转过来的公众号的url出现的问题。
正确的:htt P://3w.yijia.com/wechat/pay/?id=1
错误的:htt P://3w.yijia.com/wechat/pay?id=1 参数(也就是问号以前)要以/结尾,由于这是公众号支付配置的要求。php

2.微信api上传图片,在苹果和安卓系统下的小区别。问题描述:要上传多张图片。在安卓手机上传成功;在苹果手机那里只能上传成功最后一张。

解决方法:苹果使用递归函数上传。css


3.iframe 中若是有输入框,在苹果手机下弹出软键盘时,会致使宽度没法适配

代码:vue

$(window).resize(function () { 
            $('iframe').css("width",$(window).width());
        });

并在iframe上 增长属性react

<iframe frameborder=0 scrolling="no"></iframe>

4.绝对定位的元素被键盘顶起来。

解决方式:https://segmentfault.com/a/11...
若是使用一些时间插件,地址选择插件,是从底部弹起来的又要绝对定位的。又要设计input的。建议改成从屏幕中间弹出。segmentfault

5.音频没法自动播放

//通常状况下,这样就能够自动播放了,可是一些奇葩iPhone机不能够
 document.getElementById('car_audio').play();
//必须在微信Weixin JSAPI的WeixinJSBridgeReady才能生效
document.addEventListener("WeixinJSBridgeReady", function () {
    document.getElementById('audio').play();
    document.getElementById('video').play();
}, false);

6.vue2.0路由(react不知道)采用history 在IOS中模式没法识别二维码

这个我这的服,一直没找到解决方法,后来改用哈希路由。api

7.输入框在IOS中设置只读readonly="readonly" 时,点击扔出现光标。

$('input[readonly]').on('focus', function() {
            $(this).trigger('blur');
});

8.微信缓存。

手动清理http://debugx5.qq.com 手机打开 拉到最后,把4个选上。
本文仅提供php代码,js的自行查找。由于考虑到js是在css加载完成以后才执行的。因此要把动态生成随机数或时间戳的js放到适当的位置。好比你的css是放在head标签里面的。可是你的css是不想被缓存的,要在url后面生成一些动态信息,那么在引入该css的下面就要紧接着js代码。浏览器

<link rel="stylesheet" href="/modules/wechatmp/statics/css/1111.css?v=<?php echo time(); ?> " />
<script class='math' src="/modules/wechatmp/statics/js/11111.js?ver=<?php echo time(); ?> "></script>

9.微信分享连接不支持

微信分享接口不支持hash传递。缓存

带有hash的url分享朋友圈的时候,跳转信息中 不包含hash信息。例如:微信

view/guide/home.php#share/service/detail/ide

只能获得:

view/guide/home.php

建议:分享的时候不要带hash信息。若是必定要带附加信息,能够转为:

view/guide/home.php?share/service/detail/。

在作单页面应用的时候,若是要分享当前页面的动态数据,要把参数拼接到url后面。页面之间使用路由传参,并用get请求。

相关文章
相关标签/搜索