【问题标题】:iOS cordova (phonegap) app, JavaScript code completely blocked, freezediOS cordova (phonegap) 应用程序,JavaScript 代码完全被阻止、冻结
【发布时间】:2018-03-20 15:10:59
【问题描述】:

我有一个 Cordova 应用程序,它在 Android 上运行良好。现在我也想制作一个 iOS 版本的应用程序,毕竟这就是我们使用 Cordova 的原因。我将跳过签署代码所需的设置,等等。

最大的问题是同一应用无法在 iOS 上运行。 JavaScript 从应用程序开始就崩溃了。

基本上,该应用程序仅在模拟器(xcode 8.3 和 iPhone 4 模拟器)中运行,设备上的 JavaScript 完全冻结。 即使在 iPhone 5 的模拟器上也没有任何东西可以运行。

我怀疑运行代码的权限存在某种问题,或者某个插件可能存在问题。

index.html 中的 CSP 行是这样的:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src * 'self' 'unsafe-inline' 'unsafe-eval'; script-src * 'self' 'unsafe-inline' 'unsafe-eval'; frame-src *; worker-src *; ">

插件的完整列表如下。我知道对于sqllite插件,这里描述的代码有一个小改动,试过了,还是不行。

Stackoverflow - sqlite plugin on ios

请将您的代码行更改为 变量数据库 = window.openDatabase("test.db", "1.0", "test", 20000); (这是为了 IOS) 代替 var db = window.sqlitePlugin.openDatabase("test.db", “1.0”,“测试”,20000); (这是安卓版)

应用中使用的插件。

cordova-plugin-app-event 1.2.1 "Application Events"
cordova-plugin-app-version 0.1.9 "AppVersion"
cordova-plugin-crosswalk-webview 2.3.0 "Crosswalk WebView Engine"
cordova-plugin-device 1.1.7 "Device"
cordova-plugin-inappbrowser 1.7.2 "InAppBrowser"
cordova-plugin-insomnia 4.3.0 "Insomnia (prevent screen sleep)"
cordova-plugin-mauron85-background-geolocation 2.2.5 "CDVBackgroundGeoloc
cordova-plugin-network-information 1.2.1 "Network Information"
cordova-plugin-spinner 1.1.0 "Spinner Plugin"
cordova-plugin-splashscreen 4.1.0 "Splashscreen"
cordova-plugin-statusbar 2.3.1-dev "StatusBar"
cordova-plugin-whitelist 1.3.3 "Whitelist"
cordova-sqlite-storage 1.4.9 "Cordova sqlite storage plugin"
cordova.plugins.diagnostic.api-22 2.3.10-api-22 "Diagnostic"
de.appplant.cordova.plugin.local-notification 0.8.5 "LocalNotification"

我的问题是我不知道如何在 iOS 上调试应用程序。而且,也许权限或 CSP 只是一个小问题,或者只是需要更新的插件。 欢迎任何想法!

【问题讨论】:

    标签: javascript android ios cordova cordova-plugins


    【解决方案1】:

    要在 ios 上调试应用程序,您必须使用 safari 浏览器。并通过设置->Safari->高级->启用网络检查器在设备上启用网络检查器。

    然后在 Mac 上的 Safari 中,您应该能够从开发菜单中选择您的设备。如果您看不到开发菜单,请尝试前往 safari->prefrences->advanced->勾选“在菜单中显示开发”

    希望使用调试器能够找到您的问题。

    【讨论】:

      猜你喜欢
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多