本机脚本:WebView 界面插件无法找到本地资源

问题描述 投票:0回答:3

我在

webViewInterface
中使用
nativescript 8 with webpack v5
插件我正在尝试启动本地下载的文件ex。视频、音频、HTML 文件

我能够下载这些文件,但是在 webview 的帮助下运行该文件时,我得到了

file not found

chromium: [INFO:CONSOLE(1)] "Uncaught TypeError: Cannot read property '_onNativeEvent' of undefined", source: chrome-error://chromewebdata/

在 NativeScript 中,默认情况下,波浪号 (~) 标记应用程序根文件夹(注意应用程序而不是项目!)。因此,如果我的文件位于

<project-name>/app/index.html
,那么我需要设置这样的路径
~/index.html
.

这在

natviescript v6
上运行良好,但在升级到
nativescript v8
后它坏了。

有人可以帮忙吗???

webview nativescript nativescript-plugin
3个回答
0
投票

app 文件夹在 iOS 上是只读的(至少,在真实设备上,不一定在模拟器上)。您需要将文件下载到临时文件夹或文档文件夹,然后从那里访问。

作为参考,请参阅我自己在这个问题上的挣扎


0
投票

好的,我遇到了同样的问题。在我的例子中,当我从 nativescript 7 迁移到 8 时,webpack.config.ts 被清理了。 里面有一些有用的东西复制了我所有的 webview 文件。

我在我的 webpack.config.js 中添加了一些代码,现在它似乎可以工作了 “src”是包含我的 webview 文件夹的文件夹。

const webpack = require("@nativescript/webpack");

module.exports = (env) => {
webpack.init(env);


webpack.Utils.addCopyRule({
    from: 'webviews/**',
    context : 'src'
})

return webpack.resolveConfig();

};

我使用的文档。

NS 8:https://docs.nativescript.org/webpack.html#adding-a-copy-rule

以前使用的插件:https://webpack.js.org/plugins/copy-webpack-plugin/


0
投票

尝试使用路径:'webview_folder_in_root_of_project/index.html'

并在初始化 webview 时为 android 添加安全访问

const page = args.object;
const webView = page.getViewById('webviewId');

//to get access to local files
if (isAndroid) {
  webView.android.getSettings().setAllowFileAccess(true)
}

const webViewInterface = new webViewInterfaceModule.WebViewInterface(webView, 'webview_folder_in_root_of_project/index.html');
© www.soinside.com 2019 - 2024. All rights reserved.