微信小程序坑集

1. 微信小程序不支持cookiephp

  1. 使用Reids存儲sessionhtml

  2. 使用3rd_session創建會話關係node

 

2. 微信小程序post請求,服務端獲取不到參數android

  1. 須要把Content-type改爲‘application/x-www-form-urlencoded’才能夠正常獲取ios

  2. 修改Content-type後,請求參數不會自動序列化,須要使用JSON.stringify轉化字符串才能夠正常請求json

客戶端 小程序

 wx.request({
                        url: app.requestUrl("Index/answer"),
                        method: 'POST',
                        data: {
                            answer: JSON.stringify(needData),
                        },
                        header: { "content-type": "application/x-www-form-urlencoded" },
                        dataType: "json",
                        success: function(res) {

                        }

                    });

服務端微信小程序

    public function answer(){
        $answer=I('post.answer');
        $answer=htmlspecialchars_decode($answer);
        $answer=json_decode($answer);
    }

 

3. 微信小程序wx.request會自動對響應數據執行JSON.parse,JSON.parse執行失敗不會拋出錯誤或警告(php文件爲BOM編碼時,響應數據會帶上編碼符。由於wx.request沒有作trim處理,因此JSON.parse會執行失敗,返回json字符串!該問題很難追蹤,所以糾結了一天)服務器

 

 

4. 有些手機不支持Object.assign方法,若是使用了該方法會出現莫名其妙的報錯(並不會提示Object.assign is not function,而是致使調用了Object.assign方法的方法不能被調用)!微信

 解決方法:直接寫一個合併對象的方法!

function assignObject(o, n) {
    for (var p in n) {
        if (n.hasOwnProperty(p) && (!o.hasOwnProperty(p)))
            o[p] = n[p];
    }
}

 

 5. 不支持在對象使用解構表達式

var arr=[1,2,3,4,5];
var obj={
    node:123,
    name:"huang"
};
var newarr=[...arr,6,7,8];  // 能夠解析 var newobj={...obj,age:12};   // 沒法解析,報錯 

 

6. 服務器使用https協議時,外鏈也須要使用https協議,不然ios系統不支持(android是支持的) 

  解決方法: 把外鏈的http協議轉換成https協議(外鏈須要支持https協議)

 

7. 本身寫的遮罩層沒法遮蓋 textarea組件placeholder

  解決方法:彈出遮罩層的時候把textarea組件隱藏,關閉遮罩後從新顯示textarea組件

 

8. picker-view組件沒法滾動(當picker-view處於display:none狀態,去修改picker-view的value會致使組件卡主沒法滾動)

  解決方法:修改picker-view組件的value屬性的前picker-view必須處於正常(display:block)狀態

相關文章
相關標籤/搜索