更新记录

1.0.0(2022-10-31)

初始版本


平台兼容性

Android Android CPU类型 iOS
适用版本区间:6.0 - 12.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 适用版本区间:9 - 15

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


BenBen-EBookReader使用说明

1、打开电子书

方法名:openTheBook

传入参数:filePath(本地文件路径),filePath示例如下

file:///Users/haha/Library/Developer/CoreSimulator/Devices/56B34BD7-0F34-4F21-A5D5-EA147CBDB5CA/data/Containers/Data/Application/CE51931D-77EB-42FE-A1F5-A65F11475374/Documents/Pandora/apps/__UNI__8EA2801/doc/uniapp_save/16626246439371.txt

返回参数:code(code为1时调用成功)、data、msg

代码示例

const bookModule = uni.requireNativePlugin("BenBen-EBookReader")
const modal = uni.requireNativePlugin('modal');
    export default {
        onLoad() {
            plus.globalEvent.addEventListener('TestEvent', function(e) {
                modal.toast({
                    message: "TestEvent收到:" + e.msg,
                    duration: 1.5
                });
            });
        },
        methods: {
            openTheBook() {
                // 1下载
                uni.downloadFile({
                    url: 'http://videosasd.nongzi.com/bbb.txt', //仅为示例,并非真实的资源
                    success: (res) => {
                        if (res.statusCode === 200) {
                            // 2保存
                            uni.saveFile({
                                tempFilePath: res.tempFilePath,
                                success: (res) => {
                                   //3获取文件对象
                                    plus.io.resolveLocalFileSystemURL(res.savedFilePath,
                                        (entry) => {
                                            console.log(res.savedFilePath);
                                            console.log(entry.toLocalURL());
                                            // 4打开电子书
                                            bookModule.openTheBook({
                                                    'filePath': entry.toLocalURL()
                                                },
                                                (ret) => {
                                                    modal.toast({
                                                        message: ret,
                                                        duration: 1.5
                                                    });
                                                })
                                        })
                                },
                                fail: () => {
                                    uni.showToast({
                                        icon: 'none',
                                        title: "保存失败"
                                    })
                                }
                            })
                        }
                    }
                });
            }
        }    
    }

步骤说明:

1、调用uni方法uni.downloadFile下载电子书,获得临时路径tempFilePath

2、调用uni方法uni.saveFile保存文件到本地,获得savedFilePath

3、调用5+方法plus.io.resolveLocalFileSystemURL,获取文件对象,返回对象调用toLocalURL,即可获得本地路径URL地址

4、调用原生插件openTheBook方法,传入如步骤3中获取的URL地址(即filePath)以及license即可

特别注意:

1、本示例仅展示首次加载步骤,实际开发中需要判断是否已经下载。如果已经下载,则直接从沙盒中获取文件路径,执行步骤4即可。

2、iOS做文件本地缓存的话,不要存绝对路径,要存相对路径,每次重新运行或者安装新包的时候,Documents前面的部分路径会变,下次就会出现找不到文件的问题,所以建议存相对路径,用的时候前面的路径动态获取再拼接上就行。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android平台需要文件读写权限

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问