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

您还可以重置设备上的默认应用程序

how-to-set-and-clear-a-default-app-on-an-android-device

好的,所以我想我找到了原因。 看起来 Google Docs 应用程序和 Microsoft Word 应用程序无法处理 http-uri (http://...),但是如果我将文件下载到 phone 然后解析文件 uri (file:///....) 效果很好。