网站首页 javascript技术
uniapp_打包LAYAAIR游戏在IOS上的问题
发布时间:2021-01-10 03:11查看次数:8622
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