微信公眾號開發之坑(一)

不請自來發表於2019-02-16

有個說法是微信瀏覽器==移動端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 中如果有輸入框,在蘋果手機下彈出軟鍵盤時,會導致寬度無法適配

程式碼:

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

並在iframe上 增加屬性

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


4.絕對定位的元素被鍵盤頂起來。

解決方式:https://segmentfault.com/a/11…
如果使用一些時間外掛,地址選擇外掛,是從底部彈起來的又要絕對定位的。又要設計input的。建議改為從螢幕中間彈出。

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中模式無法識別二維碼

這個我這的服,一直沒找到解決方法,後來改用雜湊路由。

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/

只能得到:

view/guide/home.php

建議:分享的時候不要帶hash資訊。如果一定要帶附加資訊,可以轉為:

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

在做單頁面應用的時候,如果要分享當前頁面的動態資料,要把引數拼接到url後面。頁面之間使用路由傳參,並用get請求。

相關文章