使文件输入在Android nativescript vue webview上工作 上VUE的完整解决方案。

使文件输入在Android nativescript vue webview上工作 上VUE的完整解决方案。,android,nativescript,nativescript-vue,Android,Nativescript,Nativescript Vue,我正在使用NativeScript Vue创建一个应用程序,并使用webview作为主要组件。在加载的网站中,有一个文件输入字段用于捕获相机输入 它在iOS设备上运行良好,但在Android上,输入字段不起作用 有人知道一个解决方案,使文件输入字段在Android webview上工作吗 我使用tns android版本:6.1.1 更新1 我在使用哪个平台? 安卓 10.0 仿真器。像素3a 有关堆栈的详细信息: CLI:6.1.2 nodejs:v10.16.0 tns核心模块:tns

我正在使用NativeScript Vue创建一个应用程序,并使用webview作为主要组件。在加载的网站中,有一个文件输入字段用于捕获相机输入

它在iOS设备上运行良好,但在Android上,输入字段不起作用

有人知道一个解决方案,使文件输入字段在Android webview上工作吗

我使用tns android版本:6.1.1

更新1 我在使用哪个平台?
  • 安卓
  • 10.0
  • 仿真器。像素3a
有关堆栈的详细信息:
  • CLI:6.1.2
  • nodejs:v10.16.0
  • tns核心模块:tns核心-modules@6.1.1
  • 运行时:

    “tns安卓”:{ “版本”:“6.1.1” }, “tns ios”:{ “版本”:“6.1.0” }

  • 插件:

“依赖项”:{

},

“依赖性”:{

},

在我的Vue文件(其中加载了webview)中,我按如下方式加载网站:

<webview    @loaded="onWebViewLoaded" :src="webViewSrc"
                     :builtInZoomControls="false"
                     :displayZoomControls="false"
                     :debugMode="true"
/>
目前,我正在努力使nativescript相机在拍照后正常工作(总是返回“已取消”)但我知道有一种方法可以使用FileChooserParams显示本机文件输入选择,但我也无法做到这一点,因为我在网上找到的最接近的解决方案是针对Java的,并且不确定如何将其转换为Javascript/Vue


还有什么想法吗?

您必须扩展
android.webkit.WebChromeClient
并在
nativeView
上分配相同的内容


您必须实现方法,使用Intent或其他方法处理文件选择。

谢谢,但您对如何在NativeScript(Vue)上执行此操作有何想法?您可以参考下面的示例。谢谢。我尝试了很多东西,浏览了很多资料,想找到一个解决方案,但运气不好。看看我更新的原始帖子。你知道如何解决我的问题吗?只要用文件uri调用值回调,
ValueCallback.onReceiveValue(android.net.uri.fromFile(new java.io.file(imageAsset.android))使用您的解决方案,我得到了这个错误:“java.lang.ClassCastException:android.net.Uri$hierarchycaluri不能强制转换为android.net.Uri[]”。
"@babel/core": "~7.1.0",

"@babel/preset-env": "~7.1.0",

"babel-loader": "~8.0.0",

"nativescript-dev-webpack": "~1.2.0",

"nativescript-vue-template-compiler": "~2.4.0",

"node-sass": "^4.7.1",

"vue-loader": "~15.4.0"
<webview    @loaded="onWebViewLoaded" :src="webViewSrc"
                     :builtInZoomControls="false"
                     :displayZoomControls="false"
                     :debugMode="true"
/>
                    onShowFileChooser: function (WebView, ValueCallback, FileChooserParams) {
                        // FileChooserParams.createIntent()

                        camera.takePicture() // Using nativescript-camera
                            .then(function (imageAsset) {
                                console.log("Result is an image asset instance");
                                var image = new Image();
                                image.src = imageAsset;
                                console.log(image)
                            }).catch(function (err) {
                            console.log("Error -> " + err.message);
                        });

                        return false
                    }
                });
                let myWebChromeClient = new myWebChromeClientClass();
                webView.android.setWebChromeClient(myWebChromeClient);