- 微信更新8.0.44之后的新版本,小程序部分页面白屏?
!!!!!!微信新版本升级之后,部分小程序页面显示白屏,代码如下 !!!!!! import Taro from '@tarojs/taro' import React, { Component } from "react" import { View, Button, Canvas } from '@tarojs/components' import apiClass from '@api/apiClass' import classNames from 'classnames' import CollectSite from '../components/payForAnother/collectSite/collectSite' import PayParts from '../components/payForAnother/payParts/payParts' import PartsTotal from '../components/payForAnother/partsTotal/partsTotal' import Payment from '../components/payForAnother/payment/index' import './payOrderDetail.scss' import moment from 'moment' export default class Index extends Component { constructor(props) { super(props) this.state = { purchaseData: {}, orderDataState: false, authorizationState: true, paymentOpenId: '', paymentSessionKey: '', garageName: '', shareOrderId: '', garageId: '', userId: '' } } componentDidMount () { const routerOptions = Taro.getCurrentInstance() || '' const params = routerOptions.router.params const shareOrderId = params.shareOrderId || '' const garageId = params.garageId || '' const userId = params.userId this.setState({ shareOrderId, garageId, userId }) this.getOrderPurchaseConfirmDetail(shareOrderId) this.getWxUserInfo() } // 采购单 信息接口 getOrderPurchaseConfirmDetail (shareOrderId) { apiClass.purchasePayShareDetail(shareOrderId).then(res => { this.setState({ orderDataState: true, purchaseData: data, purchasePayShareId: shareOrderId }) }) }) } // 分享操作 async onShareAppMessage () { this.setState({ dialogStatue: false }) const shareOrderId = this.state.shareOrderId const dealerName = this.state.garageName || '' let imageUrl = await this.drawImage() || '' if (imageUrl) { return { path: `pages/payAnother/payOrderDetail?shareOrderId=${shareOrderId}`, title: dealerName + '有一笔订单需付款,请确认后尽快完成支付', imageUrl } } } // 订单详情外层样式 get computedClass () { if (this.state.garageName) { return 'pay-order-bottom1' } else { return this.state.authorizationState ? 'pay-order-bottom1':'pay-order-bottom' } } // 定义绘制图片的方法 drawImage () { let { payEndTime, payAmount } = this.state.purchaseData payEndTime = moment(payEndTime).format("MM月DD日HH:mm") payAmount = Number(payAmount).toFixed(2) // 创建canvas对象 let ctx = Taro.createCanvasContext('myCanvas') // 获取设备信息 let wid = 0 let hei = 0 Taro.getSystemInfo({ success: res => { wid = res.windowWidth hei = wid * 4 / 5 } }) // 填充背景色 let grd = ctx.createLinearGradient(0, 0, wid, hei) grd.addColorStop(0, '#E74A56') grd.addColorStop(1, '#F88471') ctx.setFillStyle(grd) ctx.fillRect(0, 0, wid, hei) // 绘制文字 this.drawText(ctx, { x: wid / 2, y: 33, color: '#fff', size: 58, baseline: 'top', text: `¥${payAmount}`, bold: true }) this.drawText(ctx, { x: wid / 2, y: 100, color: '#fff', size: 32, baseline: 'top', text: `待修理厂付款` }) this.drawButton(ctx, '#fff', 10, hei / 2 + 10, wid - 20, hei / 2 - 20, 6) this.drawButton(ctx, '#F84F54', 64, hei * 0.8 - 26, wid - 128, hei / 5 - 4, hei / 10 - 2) this.drawText(ctx, { x: wid / 2, y: hei / 2 + 26, color: '#363636', size: 26, baseline: 'top', text: `请在${payEndTime}前完成支付` }) this.drawText(ctx, { x: wid / 2, y: hei * 0.9 - 28, color: '#fff', size: 36, baseline: 'middle', text: `去支付`, bold: true }) // 将以上绘画操作进行渲染 return new Promise((resolve, reject) => { ctx.draw(false, () => { setTimeout(() => { Taro.canvasToTempFilePath({ canvasId: 'myCanvas', success (res) { resolve(res.tempFilePath) }, fail (res) { reject(res) } }) }, 500) }) }) } // 渲染文字 drawText (ctx, obj) { const siz = (obj.x * 2 / 422 * obj.size).toFixed(0) ctx.save() ctx.setFillStyle(obj.color) ctx.setFontSize(siz) ctx.setTextAlign(obj.align || 'center') ctx.setTextBaseline(obj.baseline) if (obj.bold) { ctx.fillText(obj.text, obj.x, obj.y - 0.5) ctx.fillText(obj.text, obj.x - 0.5, obj.y) } ctx.fillText(obj.text, obj.x, obj.y) if (obj.bold) { ctx.fillText(obj.text, obj.x, obj.y - 0.5) ctx.fillText(obj.text, obj.x - 0.5, obj.y) } ctx.restore() } // 绘制按钮:x/y:按钮起始点,width/height按钮宽高,radius弧度 drawButton (ctx, color, x, y, width, height, radius) { //分为4条直线4个圆角绘制 ctx.beginPath() ctx.fillStyle = color ctx.moveTo(x + radius, y) ctx.lineTo(x + width - radius, y) ctx.arc(x + width - radius, y + radius, radius, Math.PI*3/2, Math.PI*2) ctx.lineTo(x + width, y + height - radius) ctx.arc(x + width - radius, y + height - radius, radius, Math.PI, Math.PI/2) ctx.lineTo(x + radius, y + height) ctx.arc(x + radius, y + height - radius, radius, Math.PI/2, Math.PI) ctx.lineTo(x, y + radius) ctx.arc(x + radius, y + radius, radius, Math.PI, Math.PI*3/2) ctx.fill() ctx.closePath() } render () { const purchaseBatchInfo = this.state.purchaseData.purchaseBatchInfo || '' const reveiveInfo = purchaseBatchInfo.reveiveInfo || '' const purchaseCarList = purchaseBatchInfo.purchaseCarList || [] return ( <View className={classNames('main-content', this.computedClass)}> <Canvas id="canvas" className="canvas" canvasId="myCanvas" > </Canvas> <CollectSite collectSiteData={reveiveInfo}></CollectSite> { this.state.orderDataState && <View> <PayParts purchaseCarList={purchaseCarList}></PayParts> <PartsTotal purchaseBatchInfo={purchaseBatchInfo}></PartsTotal> </View> } { !this.state.orderDataState &&<View className='empty-data'></View> } { !this.state.garageName && <Payment openId={this.state.paymentOpenId} sessionKey={this.state.paymentSessionKey} purchaseBatchInfo={purchaseBatchInfo} authorizationState={this.state.authorizationState} onAuthorization={this.onAuthorization.bind(this)} onSubmitPayment={this.onSubmitPayment.bind(this)} ></Payment> } </View> ) } } 同一个微信号,微信版本再8.0.43和8.0.44时,加载这个页面会白屏,真机调试发现请求接口 garage/purchase/pay/share/542428899498291200 在新版 本的微信中返回异常 [图片][图片] [图片] 而且加载小程序的页面资源一直处理卡死状态,导致小接口请求异常且小程序无法加载渲染报错 但是,在低版本的微信比如8.0.40或者8.0.39以下时,该页面打开加载都是正常没有问题的。请问这是微信新版本的BUG吗,又该怎么处理呢??
2023-12-07 - 无法打开小程序,请稍后重试(错误码: 107),请问是什么原因?
线上正常使用的小程序,今天突然打不开了,代码再体验版重试,扫描体验版之后 提示 【无法打开小程序,请稍后重试(错误码: 107)】,可以手动搜 大大云管家 小程序线上版 直接验证
2023-05-10 - 小程序wx.createAnimation 创建连续动画,再次更改动画属性,动画不执行?
小程序中使用动画代码 [图片] 该方法在组建中使用,首次加载组件 percentage为0 numTag 是40,动画会从 开始位置,移动到总宽度的 40%处,但是,当页面触发方法,重新执行 setAnimation() 此时 percentage为 40 numTag 是80,这个时候动画会不执行,并没有按预想的从40%处移动到80%处,这是bug还是我理解的不对呢??
2022-11-23 - miniprogram-ci 自动打包上传小程序,无法执行成功?
微信原生小程序,使用miniprogram-ci 进行自动打包上传,执行如下命令时: ci.upload({ project, version, desc, setting: { es6: false, // "es6 转 es5" es7: false, // "增强编译" minify: true, // "样式自动补全" codeProtect: true, // "代码保护" autoPrefixWXSS: true, // "样式自动补全" }, onProgressUpdate: console.log }) 如果 es6: false 则会报错 Code protect is not available in api/activity.js 'import' and 'export' may appear only with 'sourceType: "module"' (1:0) 1 | import{ajax as t}from"../utils/https";export const getHomeBanner=e=>t.post("/garage/garage/activity/mp/listBanner?companyId="+e.companyId); 如果设置es6: true 则 执行打包上传命令会一直卡住不动,没有后续反应 我个人理解是因为 文件的导入方式不对,是应该开启ES6: true的,但是为什么为 卡主不继续执行打包上传操作呢?
2022-09-20 - 第三方小程序 提交审核 wx.getLocation 接口授权一直显示审核中?
appid:wx83f6c7bcd8a5089b 第三方小程序发布,需要申请获取当前的地理位置、速度接口(getLocation)一直审核中,已经是第四天了。 wx.getLocation 一直是返回 61031,显示审核中的状态 想问一下具体是什么原因导致的,这个接口申请到底有什么限制或者要求? 我们申请接口,是为了定位汽修厂的位置信息,方便提供服务支持的
2022-07-11 - wx.openEmbeddedMiniProgram半屏跳转小程序,我授权的小程序有没有数量限制?
wx.openEmbeddedMiniProgram半屏跳转小程序,小程序管理后台「设置」-「第三方设置」-「半屏小程序管理」板块 - [我授权的] 模块下,有没有授权的小程序数量限制?
2022-06-13 - 使用map地图组件,手势缩放的时候,怎么获取缩放后的scale?
微信版本:7.0.3 基础库版本:2.3.0 终端类型:客户端 操作系统: iOS && 安卓 补充:使用map组件的 bindregionchange 方法,当地图视野改变时,改方法的返回值里,并没有返回缩放后的 scale 值。
2019-12-18