关于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) => {})

这样就可以了

posted @ 2022-05-17 16:09  H柷H  阅读(285)  评论(0编辑  收藏  举报