關於uni app使用renderjs下 IOS 真機獲取路徑的問題
阿新 • • 發佈:2022-05-17
做的專案使用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) => {})
這樣就可以了