网站首页 javascript技术
uniapp_打包LAYAAIR游戏在IOS上的问题
发布时间:2021-01-10 03:11查看次数:4204
uniapp_打包LAYAAIR游戏在IOS上的问题
问题就是wkwebview 加载本地资源都是被视为跨域的,好在一点使用uniapp 启动的webview
是注入了PLUS runtime的 利用这一点来读取本地文件
我这里要注意两个地方 第一个地方是音效 需要是使用war个的音效
背景音可以使用MP3
需要注意的有两个问题
第一个二进制文件与json的加载
第二个是图片的加载
我写了个JS库代码如下:
function base64ToArrayBuffer(base64) { base64 = base64.split(",")[1] var binary_string = window.atob(base64); var len = binary_string.length; var bytes = new Uint8Array(len); for (var i = 0; i < len; i++) { bytes[i] = binary_string.charCodeAt(i); } return bytes.buffer; } function fXMLHttpRequest_send(oRequest) { // console.log(oRequest.url.split("www")[1]) var fileName = oRequest.url.split("www")[1]; // var url = "/static/html/res/ui/DGS.bin"; var path = "file://" + plus.io.convertLocalFileSystemURL(fileName); return plus.io.resolveLocalFileSystemURL(path, function(entry) { entry.file(function(file) { let tempBin = file.name.split(".")[1]; var fileReader = new plus.io.FileReader(); if (tempBin == "bin" || tempBin == "png" || tempBin == "jpg") { fileReader.readAsDataURL(file, 'utf-8'); } else { fileReader.readAsText(file, 'utf-8') } fileReader.onloadend = function(evt) { if (tempBin == "bin") { oRequest.success(base64ToArrayBuffer(evt.target.result)) // console.log(3) } else if (tempBin == "json") { // console.log(2) oRequest.success(JSON.parse(evt.target.result)) } else { // console.log(1) oRequest.success(evt.target.result) } } }); }, function(e) { console.log("Resolve file URL failed: " + e.message); }); }
如果使用:
第一步引入上边的方法
第二步:
注入交互动作
第三步:设置runtime 注入游戏
var plusReady = function(callback) { if (window.plus) { callback(); } else { document.addEventListener('plusready', callback); } }; // 待触发 `UniAppJSBridgeReady` 事件后,即可调用 uni 的 API。 document.addEventListener('UniAppJSBridgeReady', function() { uni.postMessage({ data: { action: 'message' } }); });
第四步:修改引擎代码 不想修改的执行下载我的文件
第五步:启动游戏
plusReady(function() { console.log(plus.os.name) loadLib("./index.js"); });
完美!解决问题.....
2021年1月10日11:08:38 深圳宝安 德玛西亚
更新1.1版本 2021年1月18日10:47:52
后续使用过程中发现 音效无法加载,因为音效也是用的阿贾克斯加载的所有也要搞
uni-app_1.1_layaair.rar 引擎版本号 2.9.0
关键字词:uniapp##laravel##lin