我尝试了什么:
我正在开发一个Android应用程序。在我的应用程序中,我必须打开 - >向用户显示microsoft office文档(doc,docx,xls,xlsx,ppt,pptx)内容。为此我尝试了多种方式(apachi-poi,docx4j)。但我无法完成它。
Android - convert doc, docx pages and xls, xlsx sheets to html using apache POI
所以我决定在我的应用程序中使用第三方文档SDK显示文档。
Android - microsoft office viewer in my app
但这对我没有帮助。同时我得到了一些建议。通过使用phonegap,我们可以打开Fileopener插件 - >向用户显示文档。
我需要什么:
我已经开发了一个非phonegap应用程序。如果我使用phonegap进行文档查看器,是否可以将phonegap应用程序集成到我的非phonegap应用程序中?
我是手机新手。如果可能的话,请提供一些想法(或)步骤来做到这一点。
答案 0 :(得分:1)
在您的非phoneGap应用程序中,当用户想要打开文档时(如果您坚持使用phoneGap),只需打开webView
,然后打开您的phoneGap应用程序(网页)。
答案 1 :(得分:1)
文件开启器插件只是启动一个意图,其他应用程序打开文件,而不是你的应用程序,所以你不需要phonegap,只需查看插件代码并在你的android项目中做同样的事情。
有一些插件。 https://github.com/markeeftb/FileOpener
private void openFile(String url) throws IOException {
// Create URI
Uri uri = Uri.parse(url);
Intent intent = null;
// Check what kind of file you are trying to open, by comparing the url with extensions.
// When the if condition is matched, plugin sets the correct intent (mime) type,
// so Android knew what application to use to open the file
if (url.contains(".doc") || url.contains(".docx")) {
// Word document
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "application/msword");
} else if(url.contains(".pdf")) {
// PDF file
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "application/pdf");
} else if(url.contains(".ppt") || url.contains(".pptx")) {
// Powerpoint file
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "application/vnd.ms-powerpoint");
} else if(url.contains(".xls") || url.contains(".xlsx")) {
// Excel file
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "application/vnd.ms-excel");
} else if(url.contains(".rtf")) {
// RTF file
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "application/rtf");
} else if(url.contains(".wav")) {
// WAV audio file
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "audio/x-wav");
} else if(url.contains(".gif")) {
// GIF file
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "image/gif");
} else if(url.contains(".jpg") || url.contains(".jpeg")) {
// JPG file
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "image/jpeg");
} else if(url.contains(".png")) {
// PNG file
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "image/png");
} else if(url.contains(".txt")) {
// Text file
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "text/plain");
} else if(url.contains(".mpg") || url.contains(".mpeg") || url.contains(".mpe") || url.contains(".mp4") || url.contains(".avi")) {
// Video files
intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "video/*");
}
//if you want you can also define the intent type for any other file
//additionally use else clause below, to manage other unknown extensions
//in this case, Android will show all applications installed on the device
//so you can choose which application to use
else { intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "*/*");
}
this.cordova.getActivity().startActivity(intent);
}
只需更改this.cordova.getActivity()
即可获得您调用代码的类上的活动。