现在这个问题还在处理吗?我们这边也有用户,分批次的在报告这个问题?如果有什么进展或者情况的话,麻烦告知一下啊,好给用户交代啊
小程序首页偶现白屏,今天突然好多用户反馈?急!没有发布新版本的前提下,今天多了很多用户反馈的白屏问题,只有首页全白屏,其它tab点击加载页面正常,不止普通用户,内部员工也有同样问题,退出小程序重新进去又好了 [图片][图片] [图片]
10-22 GLTFParser.prototype.loadTexture = function(textureIndex) { var parser = this; var json = this.json; var options = this.options; var textureLoader = this.textureLoader; var URL = global.URL; var textureDef = json.textures[textureIndex]; var textureExtensions = textureDef.extensions || {}; var source; if (textureExtensions[EXTENSIONS.MSFT_TEXTURE_DDS]) { source = json.images[textureExtensions[EXTENSIONS.MSFT_TEXTURE_DDS].source] } else { source = json.images[textureDef.source] } var sourceURI = source.uri; var isObjectURL = false; if (source.bufferView !== undefined) { sourceURI = parser.getDependency('bufferView', source.bufferView).then(function(bufferView) { isObjectURL = false; var base64 = ArrayBufferToBase64(bufferView); var sourceURI = `data:${source.mimeType};base64,${base64}`; return sourceURI }) } gltf-loader的这里改一下。然后自己定义个ArrayBufferToBase64的接口 import { encode as ArrayBufferToBase64 } from '../../three-platformize/src/libs/base64-arraybuffer'; export function encode(arrayBuffer) { var base64 = ''; var bytes = new Uint8Array(arrayBuffer); var byteLength = bytes.byteLength; var byteRemainder = byteLength % 3; var mainLength = byteLength - byteRemainder; var a, b, c, d; var chunk; // Main loop deals with bytes in chunks of 3 for (var i = 0; i < mainLength; i = i + 3) { // Combine the three bytes into a single integer chunk = (bytes[i] << 16) | (bytes[i + 1] << 8) | bytes[i + 2]; // Use bitmasks to extract 6-bit segments from the triplet a = (chunk & 16515072) >> 18; // 16515072 = (2^6 - 1) << 18 b = (chunk & 258048) >> 12; // 258048 = (2^6 - 1) << 12 c = (chunk & 4032) >> 6; // 4032 = (2^6 - 1) << 6 d = chunk & 63; // 63 = 2^6 - 1 // Convert the raw binary segments to the appropriate ASCII encoding base64 += chars[a] + chars[b] + chars[c] + chars[d]; } // Deal with the remaining bytes and padding if (byteRemainder == 1) { chunk = bytes[mainLength]; a = (chunk & 252) >> 2; // 252 = (2^6 - 1) << 2 // Set the 4 least significant bits to zero b = (chunk & 3) << 4; // 3 = 2^2 - 1 base64 += chars[a] + chars[b] + '=='; } else if (byteRemainder == 2) { chunk = (bytes[mainLength] << 8) | bytes[mainLength + 1]; a = (chunk & 64512) >> 10; // 64512 = (2^6 - 1) << 10 b = (chunk & 1008) >> 4; // 1008 = (2^6 - 1) << 4 // Set the 2 least significant bits to zero c = (chunk & 15) << 2; // 15 = 2^4 - 1 base64 += chars[a] + chars[b] + chars[c] + '='; } return base64; }
2D/3D Marker AR加载 glb文件失败?使用官方github上wechat-miniprogram/miniprogram-demo的2dmarker-ar demo加载glb文件失败。使用three.js的 GLTFLoader可以加载成功。[图片]
2022-12-21