muPDF 封装了一个 PDF 阅读器,支持本地阅读、目录查找、搜索内容等功能。本插件同时支持网络路径和本地路径的 PDF 读取,当传入网络路径时,插件会优先将文件下载到本地,下载成功后再打开读取。当用户再次打开相同路径的网络文件时,插件则会优先读取缓存在本地的文件。
注意:如果使用过程中报错"couldn't find "libmupdf_java32.so",解决办法是在config.xml文件中配置
<preference name="android_abi" value="arm64-v8a"/>
在 iOS 端若想要自己的 APP 在系统分享列表中显示(支持别的APP想通过本App打开某个文档),需要配置 Info.plist 文件。有关 Info.plist 文件的说明参考论坛。 配置示例如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>LSItemContentTypes</key>
<array>
<string>public.item</string>
<string>public.content</string>
</array>
</dict>
</array>
</dict>
</plist>
字段解释:
注意:谨慎配置此功能,提交苹果商店时需要加上详细的说明,否则审核会被拒绝。
分享来的文件通过监听 appintent 获取,详情参考文档。
申请存储权限,仅支持Android
requestPermission(callback(ret))
ret:
{
"status":"" //布尔类型;true||false
"msg":"" //字符串类型;取值范围:
//"权限已获取"(应用以获取权限并触发此方法时返回该字段)
//"请检查存储权限"(应用没获取存储权限时返回该字段)
}
var muPDF = api.require('muPDF');
muPDF.requestPermisssion(function(ret){
api.alert({msg: JSON.stringify(ret)})
});
Android系统
可提供的1.0.0及更高版本
打开PDF文件
注意:该方法可用于打开网络或本地PDF文件;打开网络文件时,会直接将文件缓存到本地
viewpdfFile({params},callback(ret))
path:
fileName:
showLoading:
diaLogStyle:
isPrivate:
ret:
//当传入的路径是本地路径时:
{
status:"", //布尔类型;true||false
msg:"" //字符串类型
//"请先获取访问文件权限"(未获取存储权限时返回此字段)
}
//当传入的路径是网络路径时:
{
status:"", //布尔类型;true||false
progress:" //数字类型;网络文件缓存进度
msg:"" //字符串类型;
//"文件加载中"(网络文件下载过程中返回该字段)
//"下载失败"(网络文件未下载成功时会返回此字段)
//"文件已损坏,请再次点击预览"(当网络文件因其他原因下载失败会返回该字段)
}
var muPDF = api.require('muPDF');
var param = {
//传入本地路径
"path":"/data/user/0/com.apicloud.pkg.sdk/filePDF.pdf",
//传入网络路径
"path":"网络路径",
"fileName":"文件保存的自定义名称",
"showLoading":true,
"diaLogStyle":"horizontal"
}
muPDF.viewpdfFile(param,function(ret){
api.alert({msg: JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的1.0.0及更高版本