还有种方法,canvas隐藏,只显示生成的图片,canvas再大,都不会显示出来,而生成的img大小自己控制 [图片]
canvas导出的图片有部分没了[代码]wx.getImageInfo({[代码][代码] [代码][代码]src: [代码][代码]"https://dewordapi.tongjideyu.com/share.png"[代码][代码],[代码][代码] [代码][代码]success: res => {[代码][代码] [代码][代码]this[代码][代码].backgroundImagePath = res.path;[代码][代码] [代码][代码]const ctx = wx.createCanvasContext([代码][代码]"myCanvas"[代码][代码]);[代码][代码] [代码][代码]let info = wx.getSystemInfoSync();[代码][代码] [代码][代码]console.log(info)[代码][代码] [代码][代码]ctx.drawImage(res.path, 0, 0, 750, 1206);[代码][代码] [代码][代码]ctx.setGlobalAlpha(1);[代码][代码] [代码][代码]ctx.setFontSize(95);[代码][代码] [代码][代码]ctx.setFillStyle([代码][代码]"#AD89FF"[代码][代码]);[代码][代码] [代码][代码]ctx.setTextAlign([代码][代码]"left"[代码][代码]);[代码][代码] [代码][代码]ctx.fillText([代码][代码]"100"[代码][代码], 297, 195);[代码][代码] [代码][代码]ctx.setFontSize(45);[代码][代码] [代码][代码]ctx.setTextAlign([代码][代码]"center"[代码][代码]);[代码][代码] [代码][代码]ctx.fillText([代码][代码]"122"[代码][代码], 200, 423, 81);[代码][代码] [代码][代码]ctx.setFillStyle([代码][代码]"#AD89FF"[代码][代码]);[代码][代码] [代码][代码]ctx.setTextAlign([代码][代码]"center"[代码][代码]);[代码][代码] [代码][代码]ctx.setFontSize(45);[代码][代码] [代码][代码]ctx.fillText([代码][代码]"99"[代码][代码], 587, 423, 144);[代码][代码] [代码][代码]ctx.setFontSize(28);[代码][代码] [代码][代码]ctx.setFillStyle([代码][代码]"white"[代码][代码]);[代码][代码] [代码][代码]let text =[代码][代码] [代码][代码]"Zollbeamtin,Flughafen,Chinese,Koffer,Moment,sprechen,Geschwister,chinesisch,Maschinenbau,wen(A),wen(A),Gemüse,Samstag,Rindfleisch,Augenblick,Lebensmittel"[代码][代码];[代码][代码] [代码][代码]let metrics = ctx.measureText(text);[代码][代码] [代码][代码]// ctx.fillText("Zollbeamtin", 100, 295.5);[代码][代码] [代码][代码]ctx.setTextAlign([代码][代码]"left"[代码][代码]);[代码][代码] [代码][代码]var[代码] [代码]startX = 104;[代码][代码] [代码][代码]var[代码] [代码]startY = 567;[代码][代码] [代码][代码]var[代码] [代码]lineWidth = 0;[代码][代码] [代码][代码]var[代码] [代码]lastSubStrIndex = 0;[代码][代码] [代码][代码]var[代码] [代码]linecount = 1[代码][代码] [代码][代码]for[代码] [代码]([代码][代码]var[代码] [代码]i = 0; i < text.length; i++) {[代码][代码] [代码][代码]lineWidth += ctx.measureText(text[i]).width;[代码][代码] [代码][代码]if[代码] [代码](lineWidth > 571) {[代码][代码] [代码][代码]ctx.fillText(text.substring(lastSubStrIndex, i), startX, startY);[代码][代码] [代码][代码]lineWidth = 0;[代码][代码] [代码][代码]lastSubStrIndex = i;[代码][代码] [代码][代码]startY += 70;[代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码][代码] [代码][代码]console.log([代码][代码]'start to draw..'[代码][代码])[代码][代码] [代码][代码]var[代码] [代码]pointer = [代码][代码]this[代码][代码] [代码][代码]ctx.draw([代码][代码]true[代码][代码], [代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]console.log([代码][代码]'done...'[代码][代码])[代码][代码] [代码][代码]wx.canvasToTempFilePath({[代码][代码] [代码][代码]canvasId: [代码][代码]'myCanvas'[代码][代码],[代码][代码] [代码][代码]width: 750,[代码][代码] [代码][代码]height: 1206,[代码][代码] [代码][代码]destWidth: 750,[代码][代码] [代码][代码]destHeight: 1206,[代码][代码] [代码][代码]success: (res) => {[代码][代码] [代码][代码]let tempPath = res.tempFilePath[代码][代码] [代码][代码]pointer.imgSrc = tempPath[代码][代码] [代码][代码]wx.saveImageToPhotosAlbum({[代码][代码] [代码][代码]filePath: tempPath,[代码][代码] [代码][代码]success: (res) => {[代码][代码] [代码][代码]console.log(res)[代码][代码] [代码][代码]pointer.showMask = [代码][代码]true[代码][代码] [代码][代码]},[代码][代码] [代码][代码]fail: (err) => {[代码][代码] [代码][代码]console.log(err)[代码][代码] [代码][代码]},[代码][代码] [代码][代码]})[代码][代码] [代码][代码]}[代码][代码] [代码][代码]})[代码][代码] [代码][代码]});[代码][代码] [代码][代码]}[代码][代码] [代码][代码]});[代码]在canvas上画图,然后导出到相册,但是导出到相册的时候有一部分没了。 在iPhone 5上会出现这个问题,iPhone 6以及其它页面不会。 [图片] [图片]
2018-08-24移动端有微软雅黑字体?app.wxss里可以设置全局样式
小程序设置全局字体类型,比如微软雅黑小程序设置全局字体类型,比如微软雅黑该怎么设置?
2018-08-23需手写一个modal,不能直接使用this.onShareAppMessage()
wx.showModal中,点击确定后,调用转发功能[代码]wx.showModal({[代码][代码] [代码][代码]title: [代码][代码]'提示'[代码][代码],[代码][代码] [代码][代码]content: [代码][代码]'希望分享投诉给更多人看到吗?'[代码][代码],[代码][代码] [代码][代码]cancelText: [代码][代码]'暂不分享'[代码][代码],[代码][代码] [代码][代码]confirmText: [代码][代码]'分享一下'[代码][代码],[代码][代码] [代码][代码]success: [代码][代码]function[代码] [代码](res) {[代码][代码] [代码][代码]if[代码] [代码](res.confirm) {[代码][代码] [代码][代码]console.log(res.confirm);[代码][代码] [代码][代码]this[代码][代码].onShareAppMessage();[代码][代码] [代码][代码]};[代码][代码] [代码][代码]},[代码][代码] [代码][代码]fail: [代码][代码]function[代码] [代码](err) {[代码][代码] [代码][代码]console.log(err);[代码][代码] [代码][代码]},[代码][代码] [代码][代码]})[代码][代码]onShareAppMessage: [代码][代码]function[代码] [代码](e) {[代码][代码] [代码][代码]return[代码] [代码]{[代码][代码] [代码][代码]title: title,[代码][代码] [代码][代码]path: [代码][代码]'/pages/detail/detail?id='[代码] [代码]+ Id,[代码][代码] [代码][代码]imageUrl: [代码][代码]'../../images/135.png'[代码][代码],[代码][代码] [代码][代码]};[代码][代码] [代码][代码]},[代码]我这样调用转发函数是没有用的,求解如何处理。
2018-08-23不如一个gif来的简单些
用canvas+setInterval,每秒20帧,手机会变热有没有什么别的解决方法,求大神! [图片] 就是做个这样的电池充电动画,用setInterval,又卡又不好用
2018-08-23不是array的问题,是for...in..循环无法保证顺序
一个数组push的问题 真机和开发者工具不一样[图片][图片] [图片] 手机是在预览中 为啥会发生这样的情况 不是很清楚
2018-08-23你同事是错的
wx.login方法将要被禁止掉是吗?- 需求的场景描述(希望解决的问题) 听同事说微信小程序将不允许获取openid,是真的吗? - 希望提供的能力 如果有哪些接口不能再使用或者将要被废弃了,可以整理出归纳的文档供查看嘛?
2018-08-23最不济的方法就是js动态获取内容高度,再赋给scroll-view
scroll-view 高度不会自动拉高[代码]<[代码][代码]scroll-view[代码] [代码]scroll-x [代码][代码]style[代码][代码]=[代码][代码]"min-height: 200px;text-align:center;width:85%;[代码][代码]"[代码] [代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"table"[代码] [代码]style[代码][代码]=[代码][代码]"width:1400rpx;margin:0px auto;border:0;"[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"tr"[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:160rpx;"[代码][代码]>货号</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:200rpx;"[代码][代码]>品名</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]>目前库存</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]>规格</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]>型号</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]>产地</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]>类型</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:80rpx;"[代码][代码]>单位</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"tr"[代码] [代码]wx:for[代码][代码]=[代码][代码]"{{productList}}"[代码] [代码]wx:key[代码][代码]=[代码][代码]"*this"[代码] [代码]wx:for-item[代码][代码]=[代码][代码]"item"[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:160rpx;"[代码][代码]>{{item.FGoodsID}}</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:200rpx;"[代码][代码]>{{item.FGoods}}</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]>{{item.FQty}}</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]>{{item.FGoitem}}</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]>{{item.FGostyle}}</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]>{{item.FGoArea}}</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]>{{item.FGoType}}</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:80rpx;"[代码][代码]>{{item.FUnit}}</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"tr"[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:160rpx;"[代码][代码]>合计</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:200rpx;"[代码][代码]> </[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]>{{FQty}}</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]> </[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]> </[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]> </[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:120rpx;"[代码][代码]> </[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:80rpx;"[代码][代码]> </[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"tr"[代码][代码]>[代码] [代码] [代码][代码]<[代码][代码]view[代码] [代码]class[代码][代码]=[代码][代码]"td"[代码] [代码]style[代码][代码]=[代码][代码]"width:100%;text-align:left;"[代码][代码]>共:{{productList.length}}条记录</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码] [代码] [代码][代码]</[代码][代码]view[代码][代码]>[代码] [代码]</[代码][代码]scroll-view[代码][代码]>[代码] 在开发者工具下呈现正常,会自动拉高页面 在IOS真机下测试高度只有min-height的高度,不会自动拉高。 开发者模式下: [图片] 真机模式下: [图片]
2018-08-22试了下,不只是在小程序,网页直接打开也是等下载完,应该跟分片下载有关,需要后端对音频文件进行处理吧,我猜是。。。
音频文件在小程序中一直等到完全加载完才会播放30M的音频文件,在开发工具和通过网页访问的时候都可以很快开始播放,在小程序中 会加载很久, 一直到完全加载完后才会开始播放 音频:http://116.85.23.247/drdfs/M00/00/00/Cv8Bult9KCqAdJkMAnSx3ApHvEU688.MP3 请问这是什么问题,改怎么解决?
2018-08-22我觉得他说的是对的
onShareAppMessage title不生效- 当前 Bug 的表现(可附上截图) 设置的title不生效 - 预期表现 设置的title生效 - 复现路径 - 提供一个最简复现 Demo 创建了一个utils.js 封装函数如下 const shareProgram = function(path) { return { title: '分享绿洲精灵给朋友!', path: '/'+path, success: function () { }, fail: function () { } } } 在其他页面调用的时候,能够分享,但是title都是默认的小程序名称,如下截图: onShareAppMessage: function () { utils.shareProgram(this.route) } [图片]
2018-08-22第二个方式,是不是在button回掉里调用wx.login了?
通过button getUserInfo获取用的用户加密数据偶尔出现后台无法解密(1)通过 wx.getUserInfo Api获取的用户信息 (2)通过 button 点击获取的用户信息 e.detail 传到后台 经过同一段 程序解密, 第一个方式获得信息 ,不会出现任何问题, 而第二个方式获取的信息,偶尔会出现解密不成功的情况! 中间无任何数据处理,直接传到后台,直接解密, 两种方式流程一样 请教~~~
2018-08-22