Cordova iOS Javascript 不工作

Posted

技术标签:

【中文标题】Cordova iOS Javascript 不工作【英文标题】:Cordova iOS Javascript not working 【发布时间】:2016-02-11 11:18:49 【问题描述】:

我创建了一个 cordova 项目,添加了 ios 平台并构建了该项目。之后,我在 Xcode 中打开 .xcodeproj,构建它,主页显示示例应用程序主屏幕。然后我在 Staging/js 文件夹中创建了另一个具有以下内容的 js 文件

function testLoad()
    alert("Loaded!");

在 index.html 中,我添加了

 <script type="text/javascript" src="js/myScript.js"></script>

并调用函数

<body onload="testLoad()">

但是没有出现警报!怎么修?我正在使用 xCode 7.2.1 和 Cordova 5.4.1。

【问题讨论】:

我不太清楚你在问什么,我没有找到任何名为 app.js 的文件,我在 Staging/js 文件夹中添加了一个新的 .js 文件 你的html和JS文件在什么位置?是Staging/www/吗? html 在 Staging/ 中,JS 在 Staging/js/ 中。我检查了更改路径没有帮助。 请发布您的完整编码。 dl.dropboxusercontent.com/u/94452798/testProj.zip 【参考方案1】:

问题是由于 index.html 中设置的内容安全策略。如https://issues.apache.org/jira/browse/CB-10598 所述,标签应设置为

<meta http-equiv="Content-Security-Policy" content="default-src 'unsafe-inline' 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">

【讨论】:

【参考方案2】:

如果你的 js 在 Staging/js 中,那么你的脚本应该是

<script type="text/javascript" src="Staging/js/myScript.js"></script>

无论如何,您可以使用 safari 进行调试以查找错误,检查一下。

https://developer.apple.com/safari/tools/

【讨论】:

这没有帮助,默认情况下 index.js 也是这样添加的 &lt;script type="text/javascript" src="js/index.js"&gt;&lt;/script&gt; 好的,然后看看调试器,如果函数不起作用或脚本没有加载会发生什么 在 safari 中,它给出了一系列弹出窗口,说没有应用程序设置为打开 gap://ready,这是由于 (***.com/q/28855486/3169868) 如果在html中添加文字,是否显示? 是的,HTML页面上的文字显示出来了。【参考方案3】:

我已运行您的项目并发现错误。解决错误后,我可以得到警报。

请更改您的以下代码

<script type="text/javascript" src="Staging/js/myScipt.js"></script>

<script type="text/javascript" src="js/myScript.js"></script>

如果仍然存在错误/问题,请告诉我。

【讨论】:

不,将其更改为 js/ 没有帮助。我在他们的问题跟踪页面上问过,但到目前为止这没有帮助。 [issues.apache.org/jira/browse/…

以上是关于Cordova iOS Javascript 不工作的主要内容,如果未能解决你的问题,请参考以下文章

Cordova iOS Javascript 不工作

来自 iOS 4.0.0 中 Native 的 Cordova 插件 Javascript 函数调用

Cordova:无论如何,是不是可以在 Javascript 中检测 iOS 应用程序是作为调试版还是作为发布版构建的?

Visual Studio Apache Cordova - iOS 在运行时构建缺少的 Javascript 文件

Cordova 加载远程 JavaScript

未调用 Cordova 插件回调 (iOS)