javascript - Wenn WeChat h5 grafische Informationen sendet, reagieren einige Geräte nicht, wenn Sie auf die Schaltfläche „Senden' klicken. Das Problem ist schwer zu reproduzieren.
天蓬老师
天蓬老师 2017-06-28 09:23:19
0
2
962

Wie im Bild oben gezeigt, klicken Sie nach der Eingabe des Inhalts und dem Hinzufügen von Bildern auf „Veröffentlichen“. Ich habe es auf dem Testgerät und auf den Mobiltelefonen meiner Kollegen versucht . Die meisten Mobiltelefone, die Probleme melden, laufen auf WeChat mit iOS6 oder höher

Back-End-Kollegen berichteten, dass das Front-End keine Daten übermittelt hat (kein Übermittlungsprotokoll), sodass die Back-End-Faktoren vorübergehend ausgeschlossen sind

Jetzt müssen wir mit dem Front-End-Code beginnen, um das Problem zu finden. Wie fange ich an, den Code zu testen?

Derzeit haben wir keine Front-End-Ausnahmeüberwachung hinzugefügt

Über die Umsetzungsidee:

1. Es wird ein Objekt definiert, um die Informationen hochgeladener Bilder zu speichern

var uploads = {
    localId: [],
    serverId: []
};

2. Wenn der Benutzer ein Bild auswählt, rufen Sie wx.chooseImage auf der WeChat-Seite auf, stopfen Sie das zurückgegebene Ergebnis (res.localIds) in (uploads.localId), speichern Sie es zwischen und zeigen Sie das Ergebnis auf der Seite an (Bild 1 oben).

wx.chooseImage({
    count: 9,
    success: function (res) {
        for(var i=0; i<res.localIds.length; i++) {
            var _key = res.localIds[i];
            if(!selectedImageMap[_key]) {
                wx_uploads_localIds.push(_key);
                selectedImageMap[_key] = true; //防止图片重复
            }
        }
        //页面本地缓存,选择班级会跳转到另外一个页面,需要将选择的图片信息缓存
        setPageSessionInfo();
        //修改标题
        setTitle('动态编辑');
        //再页面上展示已选图片
        _showSelectedPic();
        return false;
    }
});

3. Klicken Sie auf „Veröffentlichen“, rufen Sie wx.uploadImage auf, um das Bild hochzuladen, stopfen Sie die zurückgegebene Server-ID in (uploads.serverId) und speichern Sie sie im Cache, und senden Sie dann uploads.serverIds in Stapeln

//上传处理
function _uploadProccess() {
    var _localId = uplods.localId.shift();
    wx.uploadImage({
        localId: _localId, // 需要上传的图片的本地ID,由chooseImage接口获得
        isShowProgressTips: 1,// 默认为1,显示进度提示
        success : function(res){
            var serverId = res.serverId; // 返回图片的服务器端ID
            uplods.serverId.push(serverId);
            if(uplods.localId.length == 0) {
                //上传队列清空, 调用发送方法
            } else {
                _uploadProccess(); //成功继续上传且图片为上传完成
            }
        },
        fail : function(){
            //提示失败
            return false;
        }
    });
}
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

Antworte allen(2)
代言

如果可以尽量提前处理下用户上传的图片,因为有些图片非常大,我没有用过微信的上传图片api,之前用的input标签自己做的,如果图片体积较大则上传后程序会死掉,后来在用户上传到前端后处理下图片再给到后端,就没有问题了。

女神的闺蜜爱上我

看你调用的是微信接口,并且报错的都是iOS,提醒下注意引用的微信js库版本,一般概念里都是1.0.0,但实际上已经更新到1.2.0了,并且新版本的库更新的就是iOS客户端WKWebview内核的相关内容~

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage