使用phonegap在.apk中使用本机android应用程序打开pdf
我正在使用Phonegap(版本:2.7.0)为iOS和Android编写一个应用程序。pdf文件是file:///android_asset/www/test.pdf (在.apk中压缩) 我尝试使用本机pdf查看器打开此pdf,如:使用phonegap在.apk中使用本机android应用程序打开pdf,android,pdf,cordova,Android,Pdf,Cordova,我正在使用Phonegap(版本:2.7.0)为iOS和Android编写一个应用程序。pdf文件是file:///android_asset/www/test.pdf (在.apk中压缩) 我尝试使用本机pdf查看器打开此pdf,如: window.open('file:///android_asset/www/test.pdf', '_system', 'location=yes'); 上述命令适用于浏览器和iOS(您必须使用\u blank而不是\u system) 我尝试将带有Phon
window.open('file:///android_asset/www/test.pdf', '_system', 'location=yes');
上述命令适用于浏览器和iOS(您必须使用\u blank
而不是\u system
)
我尝试将带有Phonegap文件API的文件加载到SD卡,但我发现无法访问android_asset/www中的文件
可以直接从android_资产/www路径打开pdf吗?是否可以将文件复制到SD卡,然后从那里打开它?
android安装脚本是否可能 编辑: 我将其添加到/src/com/…etc.java文件中的.java文件中:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
super.appView.getSettings().setAllowUniversalAccessFromFileURLs(true);
}
但还是有同样的问题
我已经从adb-d logcat中获得了输出,当我启动应用程序并单击pdf链接时,会发生这种情况:
I/ActivityManager(22040):显示com.company.appname/.appname:+1s611ms
I/ActivityManager(22040):显示com.tf.thinkdroid.samsung/com.tf.thinkdroid.pdf.app.pdf屏幕:+1s549ms
D/CordovaLog(27549):从本机触发暂停事件的异常
I/Web控制台(27549):在未定义的位置从本机触发暂停事件的异常:1
...
I/InputReader(22040):dispatchTouch::touch事件的动作为0
I/InputDispatcher(22040):向当前输入目标提供触摸:操作:0,通道'40a9f450 com.tf.thinkdroid.samsung/com.tf.thinkdroid.pdf.app.PdfRenderScreen(服务器)'
I/InputReader(22040):dispatchTouch::touch事件的动作为1
I/InputDispatcher(22040):向当前输入目标提供触摸:操作:1,频道“40a9f450 com.tf.thinkdroid.samsung/com.tf.thinkdroid.pdf.app.PdfRenderScreen(服务器)”
....
D/DroidGap(27549):恢复应用程序
我相信这在您的情况下可能会起作用:
if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) {
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
}
if(Build.VERSION.SDK\u INT>=VERSION\u CODES.JELLY\u BEAN){
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
}
最初的回答是:我遇到了与OP相同的问题,后来我找到了以下解决方案(使用Cordova 3.1.0和三星Galaxy S3进行了测试): 解决方案 首先,在之前获取文件,然后使用从服务器下载。下载完成后,请致电FileOpener(它将打开一个弹出窗口,从Adobe Reader等应用程序中进行选择)。注意:确保通过CLI/Terminal:cordova插件添加org.apache.cordova.file包含文件传输功能
- 导航到您的项目文件夹
- 打开CLI/终端并键入:
cordova插件添加https://github.com/don/FileOpener.git
- 在设备上成功下载并存储文件(见上文)后,您可以通过以下方式打开文件:
window.plugins.fileOpener.open(“file:///sdcard/Android/data/com.example.application/document.doc”
就这样!祝你好运 谢谢,但我想对于extern应用程序,仍然不允许从我的应用程序访问文件…请阅读此答案,这将对您有所帮助。