查看: 333|回复: 0

[PHP实例] 微信公众号开发之坑(一)

发表于 2017-10-13 08:00:03
尚学堂AD
有个说法是微信浏览器==移动端IE6。分享一下开发中遇到的坑 1.在自己的公众号能实现支付,从别的公众号进来不能支付。

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

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

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


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

代码:

  1. $(window).resize(function () {
  2. $('iframe').css("width",$(window).width());
  3. });
复制代码

并在iframe上 增加属性

  1. <iframe frameborder=0 scrolling="no"></iframe>
复制代码
4.绝对定位的元素被键盘顶起来。

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

5.音频无法自动播放
  1. //一般情况下,这样就可以自动播放了,但是一些奇葩iPhone机不可以
  2. document.getElementById('car_audio').play();
  3. //必须在微信Weixin JSAPI的WeixinJSBridgeReady才能生效
  4. document.addEventListener("WeixinJSBridgeReady", function () {
  5. document.getElementById('audio').play();
  6. document.getElementById('video').play();
  7. }, false);
复制代码
6.vue2.0路由(react不知道)采用history 在IOS中模式无法识别二维码

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

7.输入框在IOS中设置只读readonly="readonly" 时,点击扔出现光标。
  1. $('input[readonly]').on('focus', function() {
  2. $(this).trigger('blur');
  3. });
复制代码
8.微信缓存。

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

  1. <link rel="stylesheet" href="/modules/wechatmp/statics/css/1111.css?v=<?php echo time(); ?> " />
  2. <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/

只能得到:

view/guide/home.php

建议:分享的时候不要带hash信息。如果一定要带附加信息,可以转为:

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

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



回复

使用道具 举报