Cordova iOS构建白屏

时间:2015-08-05 13:17:34

标签: cordova uiwebview reactjs browserify hybrid

注意:我的问题与启动画面问题无关

所以过去几天我一直在努力弄清楚为什么我的browserify + react app不会加载到Cordova构建的iOS webview中。该应用程序在Android上完美运行,但在iOS上,在显示Cordova加载屏幕后,它只是保持空白。我的构建脚本(build.js)似乎并没有真正做很多事情。 console.log在safari webview检查器中没有做任何事情,并且似乎没有调用React.render。

这是我的main.js文件(build.js的源代码)

var React   = require('react'),
    Router  = require('./components/router');

var $ = require('jquery');

var injectTapEventPlugin = require("react-tap-event-plugin");

var css = require('./node_modules/react-star-rating-input/src/css');

var insertCss = require('insert-css');


console.log("main.js loaded, app not rendered yet");

function onDeviceReady() {

  console.log("App running!");

  //Needed for onTouchTap
  //Can go away when react 1.0 release
  //Check this repo:
  //https://github.com/zilverline/react-tap-event-plugin

  injectTapEventPlugin();

  insertCss(css);

  Router.run(function (Handler) {
    React.render(
      React.createElement(Handler, null),
      document.body
    );
  });
};

onDeviceReady();

$(document).ready(function() {
  document.addEventListener("deviceready", onDeviceReady, false);
}.bind(onDeviceReady));

请注意,onDeviceReady调用仅适用于浏览器测试,将在稍后阶段删除。

我在iPhone 6模拟器(iOS 8.4)中运行该应用程序,并且我使用的是Cordova 4.1.2。

我希望有人可以帮助我!提前谢谢。

1 个答案:

答案 0 :(得分:0)

问题很可能出在您的路由器定义中。你不应该使用“Router.HistoryLocation” https://github.com/rackt/react-router/issues/310

在没有TouchImageView的情况下尝试这样做:

Router.HistoryLocation