Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google文档和Ms Word应用程序未显示在chooser中_Javascript_Android_Android Intent_Nativescript - Fatal编程技术网

Javascript Google文档和Ms Word应用程序未显示在chooser中

Javascript Google文档和Ms Word应用程序未显示在chooser中,javascript,android,android-intent,nativescript,Javascript,Android,Android Intent,Nativescript,在我的应用程序中,我有一个指向位于服务器上的docx文件的链接。我想在另一个可以显示docx文件的应用程序中显示此文件,如Google Docs或Microsoft Word。 当我显示选择器时,既不显示Google文档也不显示Microsoft Word(是的,它们已安装),只显示OfficeSuite应用程序。 有人知道这是为什么吗 这是我的代码: var uri = android.net.Uri.parse(httpUrlString); var extension = android.

在我的应用程序中,我有一个指向位于服务器上的docx文件的链接。我想在另一个可以显示docx文件的应用程序中显示此文件,如Google Docs或Microsoft Word。 当我显示选择器时,既不显示Google文档也不显示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和三星手机上试用过,都是一样的。

我猜您已经为扩展名为*.docx的文件设置了一个默认应用程序,这个默认应用程序是OfficeSuite

作为一种潜在的解决方法,您可以尝试将标志从仅匹配默认值更改为匹配所有值

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


我猜您已经为扩展名为*.docx的文件设置了一个默认应用程序,该默认应用程序是OfficeSuite

作为一种潜在的解决方法,您可以尝试将标志从仅匹配默认值更改为匹配所有值

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


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

好吧,我想我找到了原因。
看起来Google Docs应用程序和Microsoft Word应用程序无法处理http uri(.),但如果我将文件下载到手机,然后解析文件uri(file:///....)它工作得很好。

谢谢你的回答,不幸的是,这不起作用。*.docx没有默认应用程序,如果我将MATCH_default_ONLY更改为MATCH_ALL,我仍然只能选择OfficeSuite。感谢您的回答,不幸的是,这不起作用。*.docx没有默认应用程序,如果我将MATCH_default_ONLY更改为MATCH_ALL,我仍然只能选择OfficeSuite。