Cordova WKWebView白屏

Cordova WKWebView white screen

我正在尝试在我的 iPhone 上获取一个简单的 JavaScript 应用程序 运行ning 在 Cordova 内部。 该项目在模拟器中运行良好,但在我的 phone 上 运行 显示奇怪的屏幕。

这是我的 config.xml 文件:

<widget 
  id="com.landonschropp.tictactoe" 
  version="1.0.0" 
  xmlns="http://www.w3.org/ns/widgets" 
  xmlns:cdv="http://cordova.apache.org/ns/1.0">

  <name>Tic-Tac-Toe</name>
  <description>An awesome little tic-tac-toe game.</description>
  <author email="schroppl@gmail.com" href="https://landonschropp.com">Landon Schropp</author>

  <content src="http://localhost:8080" />
  <access origin="*" />
  <allow-navigation href="http://localhost:8080/*" />

  <feature name="CDVWKWebViewEngine">
    <param name="ios-package" value="CDVWKWebViewEngine" />
  </feature>

  <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

  <plugin name="cordova-plugin-statusbar" spec="^2.2.3" />
  <plugin name="cordova-plugin-whitelist" spec="^1.3.2" />
  <plugin 
    name="cordova-plugin-wkwebview-engine" 
    spec="git+https://github.com/driftyco/cordova-plugin-wkwebview-engine.git" />

  <engine name="ios" spec="^4.4.0" />
</widget>

和我的 package.json 文件:

{
  "name": "tic_tac_toe",
  "description": "A simple tic-tac-toe game",
  "dependencies": {
    "axios": "^0.16.1",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-stage-2": "^6.24.1",
    "cheerio": "^0.22.0",
    "cordova": "^7.0.0",
    "cordova-ios": "^4.4.0",
    "cordova-plugin-statusbar": "^2.2.3",
    "cordova-plugin-whitelist": "^1.3.2",
    "cordova-plugin-wkwebview-engine": "git+https://github.com/driftyco/cordova-plugin-wkwebview-engine.git",
    "gulp": "^3.9.1",
    "gulp-connect": "^5.0.0",
    "gulp-file-cache": "^0.0.1",
    "gulp-sass": "^3.1.0",
    "gulp-sass-glob": "^1.0.8",
    "gulp-transform": "^1.1.0",
    "gulp-util": "^3.0.8",
    "gulp-watch": "^4.3.11",
    "lodash": "^4.17.4",
    "phaser": "^2.6.2",
    "rollup": "^0.41.6",
    "rollup-plugin-babel": "^2.7.1",
    "rollup-plugin-commonjs": "^8.0.2",
    "rollup-plugin-json": "^2.1.1",
    "rollup-plugin-node-resolve": "^3.0.0",
    "rollup-stream": "^1.19.0",
    "run-sequence": "^1.2.2",
    "vinyl-source-stream": "^1.1.0"
  },
  "devDependencies": {
    "babel-register": "^6.24.1",
    "chai": "^3.5.0",
    "del": "^2.2.2",
    "eslint": "^3.19.0",
    "mocha": "^3.2.0"
  },
  "cordova": {
    "platforms": [
      "ios"
    ],
    "plugins": {
      "cordova-plugin-whitelist": {},
      "cordova-plugin-wkwebview-engine": {},
      "cordova-plugin-statusbar": {}
    }
  }
}

要构建和 运行 应用程序,我执行以下操作:

  1. yarn install
  2. cordova platform add ios
  3. cordova run ios

目前,当 运行在我的 phone 上安装应用程序时,我看到以下屏幕:

正如 dymv 所提到的,问题很可能是您的应用程序无法访问本地主机,因为在此上下文中 "localhost" 是您的开发计算机,而不是 iPhone。您可以将其部署到托管服务器解决方案并重新测试吗?

WKWebView 插件不是本地服务器,而是增强的 WebView 组件(WebView 基本上是您的应用程序中的嵌入式浏览器,它运行您的 HTML、CSS、JavaScript 代码)。核心优势是它处理 JavaScript 更快(快得多!),因此您的应用程序将执行得更好。