Google Docs 和 Ms Word 应用程序未显示在选择器中
Google Docs and Ms Word apps not showing in chooser
在我的应用程序中,我有一个 link 到位于服务器上的 docx 文件。我想在另一个可以显示 docx 文件的应用程序中显示此文件,例如 Google Docs 或 Microsoft Word。
当我显示选择器时,Google Docs 或 Microsoft Word 均未显示(是的,它们已安装),仅显示 OfficeSuite 应用程序。
有人知道这是为什么吗?
这是我的代码:
var uri = android.net.Uri.parse(httpUrlString);
var extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(uri.toString());
var mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
var intent = new android.content.Intent(android.content.Intent.ACTION_VIEW);
intent.setFlags(android.content.Intent.FLAG_ACTIVITY_NO_HISTORY);
if (extension === "" || mimetype == null) {
// if there is no extension or there is no definite mimetype, still try to open the file
intent.setDataAndType(uri, "text/*");
} else {
intent.setDataAndType(uri, mimetype);
}
var packageManager = application.android.context.getPackageManager();
var activities = packageManager.queryIntentActivities(intent, android.content.pm.PackageManager.MATCH_DEFAULT_ONLY);
var isIntentSafe = activities.size() > 0;
if (isIntentSafe) {
try {
application.android.startActivity.startActivity(android.content.Intent.createChooser(intent, "Åben Fil med"));
} catch (e) {
console.log(e);
}
}
我在索尼、LG和三星上试过phone,都是一样的。
我的猜测是您为扩展名为 *.docx 的文件设置了一个默认应用程序,这个默认应用程序是 OfficeSuite。
作为一种潜在的解决方法,您可以尝试将标志从 MATCH_DEFAULT_ONLY 更改为 MATCH_ALL
您还可以重置设备上的默认应用程序
好的,所以我想我找到了原因。
看起来 Google Docs 应用程序和 Microsoft Word 应用程序无法处理 http-uri (http://...),但是如果我将文件下载到 phone 然后解析文件 uri (file:///....) 效果很好。
在我的应用程序中,我有一个 link 到位于服务器上的 docx 文件。我想在另一个可以显示 docx 文件的应用程序中显示此文件,例如 Google Docs 或 Microsoft Word。
当我显示选择器时,Google Docs 或 Microsoft Word 均未显示(是的,它们已安装),仅显示 OfficeSuite 应用程序。
有人知道这是为什么吗?
这是我的代码:
var uri = android.net.Uri.parse(httpUrlString);
var extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(uri.toString());
var mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
var intent = new android.content.Intent(android.content.Intent.ACTION_VIEW);
intent.setFlags(android.content.Intent.FLAG_ACTIVITY_NO_HISTORY);
if (extension === "" || mimetype == null) {
// if there is no extension or there is no definite mimetype, still try to open the file
intent.setDataAndType(uri, "text/*");
} else {
intent.setDataAndType(uri, mimetype);
}
var packageManager = application.android.context.getPackageManager();
var activities = packageManager.queryIntentActivities(intent, android.content.pm.PackageManager.MATCH_DEFAULT_ONLY);
var isIntentSafe = activities.size() > 0;
if (isIntentSafe) {
try {
application.android.startActivity.startActivity(android.content.Intent.createChooser(intent, "Åben Fil med"));
} catch (e) {
console.log(e);
}
}
我在索尼、LG和三星上试过phone,都是一样的。
我的猜测是您为扩展名为 *.docx 的文件设置了一个默认应用程序,这个默认应用程序是 OfficeSuite。
作为一种潜在的解决方法,您可以尝试将标志从 MATCH_DEFAULT_ONLY 更改为 MATCH_ALL
您还可以重置设备上的默认应用程序
好的,所以我想我找到了原因。 看起来 Google Docs 应用程序和 Microsoft Word 应用程序无法处理 http-uri (http://...),但是如果我将文件下载到 phone 然后解析文件 uri (file:///....) 效果很好。