关于uni app使用renderjs下 IOS 真机获取路径的问题
做的项目使用uni引用three.js做的3D渲染图。引用字体文件时H5跟安卓都是没有,就是IOS加载不了。后来uni论坛查到。
打包时添加释放模式,在manifest.json里面添加“runmode”:"liberate";
在引用字体的更改更改使用plus.io.convertLocalFileSystemURL把路径转换
function getfile(src){ // #ifdef APP-PLUS let url = plus.io.convertLocalFileSystemURL( src ) return new Promise((resolve,reject)=>{ plus.io.resolveLocalFileSystemURL(url, entry => { var reader = null; entry.file( file => { reader = new plus.io.FileReader(); reader.onloadend = ( read )=> { resolve(read.target.result) }; reader.readAsDataURL( file ); }, function ( error ) { alert( error.message ); } ); },err=>{ resolve(src) }) }) // #endif // #ifndef APP-PLUS return new Promise((resolve,reject)=>{ resolve(src) }) // #endif }
引用的字体更改为
let loader = new THREE.FontLoader();
let fontsrc = "./static/fonts/gentilis_regular.typeface.json"; loader.load(await getfile(fontsrc), (font) => {})
这样就可以了