NativeScript WebView加载src文档中的本地资源

2023-11-30

我正在加载本地 html 文件作为 NativeScript WebView 组件的 src。 html 文件中包含引用 javascript 文件的脚本标签,这些文件也是本地资源(捆绑在应用程序中)。 html 文件可以正常加载到 WebView 中,但引用的脚本文件 (mylib.js) 却不能。

我怀疑路径有问题,但我几乎尝试了所有我能想到的变体,但都无济于事。

我的项目实际上是一个NativeScript-Vue项目,如下:

App.vue

<template>
    <Page @loaded="onPageLoaded">
        <ActionBar title="Welcome to WebView"/>
        <GridLayout>
            <WebView ref="myWebView" row="0" col="0" 
            :src="filePath" @loadFinished="onWebViewLoaded" />
        </GridLayout>
    </Page>
</template>

<script>
import * as fs from "tns-core-modules/file-system"
import * as utils from "utils/utils"

  export default {
    data() {
      return {
        filePath: ''
      }
    },
    methods: {
        onPageLoaded () {
            this.setLocalIndexFilePath()
        },
        onWebViewLoaded (event) {
            if (event.error) { 
                console.log(error)
            } else {
                console.log('webview loaded')
            }
        },
        setLocalIndexFilePath () {
            const deviceName = 
            utils.ios.getter(UIDevice, UIDevice.currentDevice).name
            // iPhone 6 is the name of my simulator
            if (deviceName == 'iPhone 6') {
                const webViewSRC = 
                encodeURI(`${fs.knownFolders.currentApp().path}/www/index.html`)
                this.filePath =  webViewSRC
                console.log(webViewSRC)
            } else {
                this.filePath = "~/www/index.html"
            }
        }
    }
  }
</script>

索引.html

<!doctype html>
<head>
    <script src="./mylib.js" type="text/javascript"></script>
    <script type="text/javascript">
        function onBodyLoaded() {
            var msg = document.getElementById('msg');
            msg.insertAdjacentHTML('beforeend', '<br />body loaded!');
        }

        function onLocalButtonClicked() {
            var msg = document.getElementById('msg');
            msg.insertAdjacentHTML('beforeend', '<br />local: You clicked button!');
        }
    </script>
</head>
<html>
    <body onload="onBodyLoaded()">
      <Button onclick="onLocalButtonClicked()">Click Me</Button>
      <Button onclick="onButtonClicked()">Click Me to test external js</Button>
      <p id="msg">Debug:</p> 
    </body>
</html>

mylib.js

// This function never gets called
function onButtonClicked() {
  var msg = document.getElementById('msg');
  msg.insertAdjacentHTML('beforeend', '<br />external js file: You clicked button!');
}

webpack.config.sys

... 
// Copy assets to out dir. Add your own globs as needed.
new CopyWebpackPlugin([
    { from: "fonts/**" },
    { from: "**/*.+(jpg|png)" },
    { from: "assets/**/*" },
    { from: "www/**/*" }, 
...

这是一个已知问题与iOS。有一个修补工作你可以尝试,我已经实现了同样的操场对于类似的问题,它也适用于 Vue。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NativeScript WebView加载src文档中的本地资源 的相关文章

随机推荐

  • 使用数组过滤对象数组,无需嵌套循环js

    我一直在试图找出在不使用嵌套循环的情况下过滤对象数组的最干净的方法 我找到了这个post using filter关于使用另一个数组过滤数组的函数 但我无法弄清楚如何使用相同的模式实际访问对象数组中的对象内的正确键 给定以下对象数组 tec
  • Kendo UI 重新加载树视图

    我通过 ajax 使用 kendo ui 加载一个复杂的树视图 因为我需要通过一个请求加载树 工作正常 document ready function buildTree function buildTree getJSON admin g
  • 使用 jQuery 延迟更改 insideHTML 文本

    所以我有一个非常简单的按钮 基本上可以打开和关闭表单 我们将在我们的网站上使用它 因为我们正在进行更新并希望在任何页面上提供反馈 这是我迄今为止拥有的 jQuery
  • 具有不同时间戳的重复条目

    我有一个按姓名列出的客户表 Customer SCD在 SQL 中 我其中有 3 列 Customer Name Customer ID Customer TimeStamp 该表中存在不同的重复条目时间戳 例如 ABC 1 2012 12
  • 如何在 ggplot2 中绘制(复杂的)堆叠条形图,无需复杂的手动数据聚合

    我想绘制一个 多面的 堆叠条形图 其中 X 轴以百分比表示 频率标签也显示在条中 经过相当多的工作并查看了 stackoverflow 上的许多不同问题后 我找到了如何使用 ggplot2 解决此问题的解决方案 但是 我不直接使用 ggpl
  • 多维数组转 CSV

    我得到这个数组 array cat gt array 0 gt array name gt Sales url gt http videos volkswagen nl videos videos subs gt array 0 gt ar
  • jQuery toggle() 方法的最佳替代方法?

    jQuery 不推荐使用toggle 方法 这是一种很容易切换类的方法 在搜索 stackoverflow 时 我发现了各种其他方法来完成相同的任务 支持 eventData 的 jQuery toggle 方法的替代方法 哪个 jQuer
  • 为什么在 char 变量中存储 255 在 C 中其值为 -1?

    我正在看一本C书 作者提到了一段文字 if ch a char variable is a signed type then storing 255 in the ch variable gives it the value 1 谁能详细说
  • UTC 时间重置为 2000-01-01 (ruby)。如何防止时间重置?

    我正在使用任务和电子表格 gem 将 Excel 电子表格读入我的数据库 我正在阅读的专栏之一是 start time 为此 我将形成一个值数组 然后逐一传入每个数组值 cnum array for start times sheet1 e
  • ASP.Net MVC 更新下拉选择上的 ViewModel 已更改

    起初我对网络开发完全是新手 我正在尝试开发一个由单个页面组成的 Web 应用程序 我从一个空项目开始尝试遵循 mvc 模式 为了填充我的视图 我通过我的 HomeController 将 ViewModel 传递到我的 Home 视图 现在
  • 如何使用 Plotly 制作带有滑块的分区统计图?

    我正在重新创建等值线示例并尝试添加一个滑块 拖动该滑块时 该滑块会逐年变化 另一位用户问了一个类似的问题但他们没有收到回复 我做了更多搜索并找到了一个example用户生成了额外年份的随机值并创建了一个滑块 但它是用 JavaScript
  • maven-ear-plugin 和 JBoss AS 7

    我正在迁移到 JBoss AS 7 并使用 maven 构建 在我看来 maven ear plugin 还不支持 JBoss AS 7 默认情况下它使用 JBoss AS 4 这会引起问题吗 我还在尝试弄清楚如何构建我的档案 现在遇到了与
  • 在没有互联网连接的情况下创建 Laravel 应用程序

    laravel 5 1 在没有互联网连接的情况下可以工作吗 我喜欢创建一个 Laravel 新应用程序 当我执行 laravel new test 使用 intenet 连接 时 它运行良好 但是当我在没有互联网连接的情况下在同一目录 新的
  • MongoDB CursorNotFound 在 collection.find() 上出现数百个小记录错误

    我正在 Mongo 3 6 6 上运行 在小型 Mongo Atlas 集群上 未分片 使用本机 Node JS 驱动程序 v 3 0 10 我的代码如下所示 const records await collection find user
  • 我应该在 OpenGL ES 游戏中使用多线程吗?

    我正在开发一款 iPhone 游戏 其中包含一个玩家和许多敌人 我使用 OpenGL ES 来显示游戏视觉效果 我有点困惑是否应该只使用一个线程还是使用多个线程来移动和控制玩家和敌人 您对这个基本游戏架构有什么建议 我在这一点上不同意 Ma
  • 使用 mongoose 在 MongoDB 中批量更新插入

    是否有任何选项可以使用猫鼬执行批量更新插入 那么基本上有一个数组并插入每个元素 如果不存在 或更新它 如果存在 我正在使用海关 ids 当我使用时 insertMongoDB 针对重复键返回错误 E11000 应更新 不过 插入多个新文档效
  • 为什么indexOf 不能在IE8 上工作?

    下面的函数在 Opera Firefox 和 Chrome 上运行良好 然而 在 IE8 中却失败了if allowed indexOf ext 1 1 part 有谁知道为什么 有没有明显的错误 function CheckMe var
  • 在 MS Access 中将包含多个值的多行连接成单行

    我正在尝试创建简单的需求管理数据库 基本上我有如下两张表 Contract requirements 有 2 列 CR ReqID Description reqCR1 Contract req description 1 reqCR2 C
  • 为什么 HTML/JSP 页面需要 DOCTYPE?

    为什么我们在 HTML JSP 页面中需要 doctype 页面似乎没有它就可以工作 Zeldman wrote 根据 HTML 和 XHTML 标准 DOCTYPE 文档类型 的缩写 声明 通知验证者 您正在使用哪个版本的 X HTML
  • NativeScript WebView加载src文档中的本地资源

    我正在加载本地 html 文件作为 NativeScript WebView 组件的 src html 文件中包含引用 javascript 文件的脚本标签 这些文件也是本地资源 捆绑在应用程序中 html 文件可以正常加载到 WebVie