- App的onLaunch中需要做些初始化操作,能否实现初始完毕再加载Page?
Page的onLoad比App的onLaunch执行的还要快 App的onLaunch中需要做些初始化操作,此时能否禁止Page加载,直到完成初始化操作后,再加载Page页面? 主要是Page加载时需要依赖初始数据,这些数据可能需要Login后从网上获取,否则页面显示错误! 究竟如何处理好这样的逻辑呢?谢谢啦哈~~~
2018-07-07 - 还没有wx.login( )wx.checkSession( )就返回成功对吗?
[代码]wx.checkSession({[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]//session_key 未过期,并且在本生命周期一直有效[代码][代码] [代码][代码]console.log([代码][代码]'checkSession ok'[代码][代码])[代码][代码] [代码][代码]},[代码][代码] [代码][代码]fail: [代码][代码]function[代码] [代码]() {[代码][代码] [代码][代码]// session_key 已经失效,需要重新执行登录流程[代码][代码] [代码][代码]// wx.login() //重新登录[代码][代码] [代码][代码]console.log([代码][代码]'checkSession fail.'[代码][代码])[代码][代码] [代码][代码]}[代码][代码]})[代码] 还没有wx.login( ),首次执行wx.checkSession( )就返回成功,这对吗?
2018-06-10 - Bug:wx.request返回的图片数据已不是原来的数据◆◆◆◆◆◆◆◆◆◆◆
wx.request发送请求,返回的信息被包装成一个对象res={data:xxx,header:xxx, ... } 通过res.data可以获取返回的数据,对于返回的二进制数据,包装成一个字符串的形式,不知你们是如何包装的,对字节高位是1的所有字节都没有正确返回,某些情况下还会丢失字节,已经不能还原实际应该返回的数据,请进行修改。 bug造成最明显的例子就是返回的图片二进制数组无法转换成base64格式显示出来,虽然提供有转换的方法,但已经变成了摆设,因为获取的数据是错误的,怎么转换也不可能获取正确的结果去显示图片。 如果是你们有意为之,请在文档中作一说明,就是无法处理返回图片二进制数据的情况。
2018-06-08 - 获取小程序码base64后无法显示,请给出方法或思路,别让大家在这里瞎折腾好吗?
[代码]wx.request({ [代码][代码]//获取小程序码[代码][代码] [代码][代码]url: [代码][代码]"https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="[代码] [代码]+ getApp().globalData.access_token, //获取小程序码[代码][代码] [代码][代码]header: {[代码][代码] [代码][代码]'content-type'[代码][代码]: [代码][代码]'application/json'[代码][代码] [代码][代码]},[代码][代码] [代码][代码]data:{[代码][代码] [代码][代码]scene: json.content,[代码][代码] [代码][代码]page:[代码][代码]"pages/news/detial"[代码][代码],[代码][代码] [代码][代码]width:430[代码][代码] [代码][代码]},[代码][代码] [代码][代码]method:[代码][代码]"POST"[代码][代码],[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]console.log(res);[代码][代码] [代码][代码]var[代码] [代码]json = res.data;[代码][代码] [代码][代码]console.log([代码][代码]"json.length="[代码] [代码]+ json.length);[代码][代码] [代码][代码]console.log([代码][代码]"content length="[代码] [代码]+ res.header[[代码][代码]'Content-Length'[代码][代码]]);[代码][代码] [代码][代码]var[代码] [代码]a =[代码][代码]new[代码] [代码]Uint8Array(json.length)[代码][代码] [代码][代码]for[代码][代码]([代码][代码]var[代码] [代码]i=0;i<json.length;++i){[代码][代码] [代码][代码]a[i]=json.charCodeAt(i);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]var[代码] [代码]b = wx.arrayBufferToBase64(a);[代码][代码] [代码][代码]console.log(b.substring(0,100))[代码][代码] [代码][代码]that.setData({ img: b })[代码][代码] [代码][代码]wx.hideNavigationBarLoading();[代码][代码] [代码][代码]}[代码][代码]})[代码]console.log返回的结果: {data: "����", header: {…}, statusCode: 200, errMsg: "request:ok"} json.length=91729 content length=96702 /f39/QAQSkZJRgABAQAAAQABAAD9/QBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB 可以看出: res.data是字符串格式的图片数据,然而转换成base64后图片并不能显示出来, 请问微信的技术人员,该如何显示潘慧的小程序码图片呢? 如果现在显示不出来,能不能说一声,避免大家浪费数据在这里瞎测试, 如果能显示,请给出方法或思路,别让大家在这里瞎折腾好吗????
2018-06-07 - wx.request返回的是图片的二进制数据,如何用image控件将其显示出来?
同标题
2018-06-06 - 接口B生成小程序码,正常时返回的是什么内容?如何去显示图片?文档上怎么没说啊?
关于二维码的文档在这里: [代码]https:[代码][代码]//developers.weixin.qq.com/miniprogram/dev/api/qrcode.html[代码] [代码]怎么调用,说的很清楚,但正确时返回的是什么,怎么去显示图片却没有说,下面的测试显示老出错,不知道该如何处理,请大咖们指点,非常感谢~~~[代码] [代码]是不是只能在小程序发布之后才能使用?若还没有发布该如何测试?[代码] [代码]wx.request({ [代码][代码]//获取小程序码[代码][代码] [代码][代码]url: [代码][代码]"https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="[代码] [代码]+ getApp().globalData.access_token, //仅为示例,并非真实的接口地址[代码][代码] [代码][代码]header: {[代码][代码] [代码][代码]'content-type'[代码][代码]: [代码][代码]'application/json'[代码] [代码]// 默认值[代码][代码] [代码][代码]},[代码][代码] [代码][代码]data:{[代码][代码] [代码][代码]scene: json.content,[代码][代码] [代码][代码]page:[代码][代码]"pages/index/join"[代码][代码] [代码][代码]},[代码][代码] [代码][代码]method:[代码][代码]"post"[代码][代码],[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]var[代码] [代码]json = res.data;[代码][代码]//获取的html文本信息[代码][代码] [代码][代码]console.log([代码][代码]'小程序码:'[代码][代码])[代码][代码] [代码][代码]console.log(json);[代码][代码] [代码][代码]}[代码][代码]})[代码] 控制台显示的是: 小程序码: {errcode: 41030, errmsg: "invalid page hint: [gy9pia04258927]"}
2018-06-06 - 出现的弹窗总是透明,很不爽,应该是bug,有截图,有源码
请诊断一下是否是bug,无法阻止透明,用背景图片,用透明度等,都不行!!! 绿色按钮没有透明 [图片] 文本透出来了 [图片] 文本透出来了 [图片] 文本透出来了 [图片] 下面是源代码: app.wxss .k{ display: flex; align-items: center; padding:0 10px; font-size:14px; height:36px; } .j{ color:#333; font-weight: normal; flex-shrink:0;} .c{ color:#999; flex-grow:1; flex-shrink: 1; position: relative; line-height: 1.8; padding:5px; } .in{ padding:3px 5px; border-radius: 5px; border:1px solid gray; margin-right: 6px;} radio,checkbox{padding: 5px ; color:black; } .panel{position: absolute; top:0;right:-53px; background:url(https://www.sxldfang.cn/p8/ba.png) ; padding:10px; z-index: 1; border-radius: 10px; max-height: 200px; overflow-y: auto; border:1px solid #666; } .h{line-height: 2;margin:5px ; font-size:14px; } .kong{height:100px;} .jj{text-indent: 2em; font-size: 14px; color:#333; padding: 10px; line-height: 1.8; } me.wxml <view wx:for="{{person}}" class='k'> <text class='j'>{{item.c}}:</text> <input wx:if="{{item.t==0}}" class='c in' data-index='{{index}}' bindfocus='sc' bindinput='sc' value="{{item.v}}"></input> <view wx:elif="{{item.t==1}}" data-who='menu' class='c' bindtap='sc' data-index='{{index}}'> <text data-who='menu'>{{item.v?item.v:'单击去选择...'}}</text> <view class='panel' style="display:{{item.s?'block':'none'}}; background:#ccc; opacity:1;" > <radio-group data-who='group' data-index='{{index}}' bindchange="sc"> <radio wx:for="{{item.i}}" wx:for-item='it' wx:for-index='in' value="{{it}}" checked='{{item.v===it?true:false}}' >{{it}}</radio> </radio-group> <button class='h' data-who='hide'>隐藏</button> </view> </view> <view wx:elif="{{item.t==2}}" data-who='menu' class='c' bindtap='sc' data-index='{{index}}'> <text data-who='menu'>{{item.v?item.v:'单击去选择...'}}</text> <view class='panel' style="display:{{item.s?'block':'none'}}; background:#ccc; opacity:1;" > <checkbox-group data-who='group' data-index='{{index}}' bindchange="sc" > <checkbox wx:for="{{item.i}}" wx:for-item='it' wx:for-index='in' value="{{it}}" checked='{{item.m[in]?true:false}}' >{{it}}</checkbox> </checkbox-group> <button class='h' data-who='hide'>隐藏</button> </view> </view> <switch checked bindchange="switch1Change"/> </view> me.js var me=getApp().globalData.me; // pages/index/me.js Page({ /** * 页面的初始数据 */ data: { lastIndex:-1, person: [ // j简拼 c中文名 t数据类型(0-输入框,1-单选,3-多选) i单选或多选的选项 s是否显示单选多选界面(true显示,false隐藏) m初始化多选界面的对勾情况 { j: 'name', c: '姓名', t: 0, }, { j: 'sex', c: '性别', t: 1, i:['男','女'] }, { j: 'mz', c: '民族', t: 1, i: ['汉族', '壮族', '满族', '回族', '苗族', '维吾尔族', '土家族', '彝族', '蒙古族', '藏族', '布依族', '侗族', '瑶族', '朝鲜族', '白族', '哈尼族', '哈萨克族', '黎族', '傣族', '畲族', '傈僳族', '仡佬族', '东乡族', '高山族', '拉祜族', '水族', '佤族', '纳西族', '羌族', '土族', '仫佬族', '锡伯族', '柯尔克孜族', '达斡尔族', '景颇族', '毛南族', '撒拉族', '布朗族', '塔吉克族', '阿昌族', '普米族', '鄂温克族', '怒族', '京族', '基诺族', '德昂族', '保安族', '俄罗斯族', '裕固族', '乌孜别克族', '门巴族', '鄂伦春族', '独龙族', '塔塔尔族', '赫哲族', '珞巴族'] }, { j: 'xx', c: '血型', t: 1, i: ['A型', 'B型', 'AB型', 'O型'] }, { j: 'hf', c: '婚否', t: 1, i: ['已婚', '未婚'] }, { j: 'ah2', c: '爱好', t: 2, i: ['跑步', '游泳', '网球', '羽毛球', '乒乓球', '爬山', '旅游'] }, { j: 'jg', c: '籍贯', t: 0 }, { j: 'tel', c: '电话', t: 0 }, { j: 'qq', c: 'QQ', t: 0 }, { j: 'email', c: '邮箱', t: 0 }, { j: 'zw', c: '职务', t: 0 }, { j: 'zc', c: '职称', t: 0 }, { j: 'zdxx', c: '在读学校', t: 0 }, { j: 'bj', c: '在读班级', t: 0 }, { j: 'xh', c: '在读学号', t: 0 }, { j: 'byyx', c: '毕业院校', t: 0 }, { j: 'dw', c: '工作单位', t: 0 }, { j: 'bm', c: '工作部门', t: 0 }, { j: 'id', c: '身份证号', t: 0 }, { j: 'kc', c: '教授课程', t: 0 }, { j: 'edu', c: '最高学历', t: 1, i: ['博士', '硕士', '本科', '专科(高专、高职、高技)'] }, { j: 'zzmm', c: '政治面貌', t: 1, i: ['中共党员', '中共预备党员', '共青团员', '民革党员', '民盟盟员', '民建会员', '民进会员', '农工党党员', '致公党党员', '九三学社社员', '台盟盟员', '无党派人士', '群众'] }, { j: 'fz', c: '服装号码', t: 1, i: ['XXXL', 'XXL', 'XL', 'L', 'M', 'S', 'XS', 'XXS'] }, { j: 'jjxm', c: '紧急联系人', t: 0 }, { j: 'jjdh', c: '联系人电话', t: 0 }, ], }, sc:function(e){ var i = e.currentTarget.dataset.index; var change = {} if (e.type === 'input') { change["person[" + i + "].v"] = e.detail.value; }else if (e.type === 'focus' && this.data.lastIndex !== -1){ change["person[" + this.data.lastIndex + "].s"] = false; change.lastIndex = -1; }else{ var who = e.target.dataset.who; if(!who)return; if (who==='hide'){ change["person[" + i + "].s"] = false; change.lastIndex = -1; } else if ( who === 'menu' ){ if (this.data.lastIndex !== -1){ change["person[" + this.data.lastIndex + "].s"] = false; } this.data.lastIndex = i; change["person[" + i + "].s"] = true; } else if(who=='group'){ var v=e.detail.value; if(typeof(v)==='string'){//单选 change["person[" + i + "].s"]=false; } change["person[" + i + "].v"] = v.length == 0 ? '单击去选择...' : v; } } this.setData(change) }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { console.log(me) var p=this.data.person; var change={}; for(var i=0;i<p.length;++i){ if(me[p[i].j]){ change["person[" + i + "].v"] = me[p[i].j]; if (p[i].t == 2){//处理多选,单选无需处理,因为逻辑比较简单 var t = ","+me[p[i].j]+",";// ,跑步,游泳,羽毛球, for(var j=0;j<p[i].i.length;++j){ change["person[" + i + "].m[" + j + "]"] = t.indexOf(","+p[i].i[j]+",") >= 0;//记录选择的是第几项 } } } } this.setData(change); }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { console.log('hide') var me={}; var p = this.data.person; for(var i=0;i<p.length;++i){ if(p[i].v) me[p[i].j]=p[i].v; } getApp().globalData.me=me; }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { } })
2018-05-30 - e.targetd 困惑!~~
<view class='news' wx:for='{{newsList}}' bindtap='showNews' data-index='{{index}}' data-url='{{item.url}}' style='color:{{item.color}}'> {{item.des}} <text class='time'>{{item.time}}</text> </view> 当单击<text class='time'>{{item.time}}</text>时,引发了showNews事件,问题是: e.target不是<view>而是<text>!!!!! showNews: function (e) { var index = e.target.dataset.index;//获取要看新闻的索引号,从0开始 if(index==undefined)return; 。。。 }
2018-03-21 - 请问在scroll-view的文档中能不能给出wxss文件的内容啊?
https://mp.weixin.qq.com/debug/wxadoc/dev/component/scroll-view.html 缺少内容,看不到效果啊!谢谢啦!!!
2018-03-14 - getStorage 或 setStorage 究竟放在哪里比较合适呢?
[图片] 真正被销毁后,那么下次启动该小程序时会执行onLaunch()吗?怎么理解 全局只触发一次 这个概念。 是否只要没有真正销毁,全局变量或页面数据就一直存在?谢谢啦哈!!!
2018-03-14