2015-08-05 4 views
1

Примечание: мой вопрос не имеет отношения к вопросу SplashScreenКордова IOS построить белый экран

Так я с немного болит голова за последние несколько дней, пытаясь понять, почему мой browserify + срабатывают приложение выиграл» t в веб-обозревателе iOS, построенном компанией Cordova. Приложение отлично работает на Android, но на iOS, после отображения экрана загрузки Кордовы, он просто остается пустым. Похоже, что мой встроенный скрипт (build.js) на самом деле не делает вообще ничего. console.log ничего не делает в инспекторе проверки веб-сафари, и 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.

Я надеюсь, что кто-то там может мне помочь! Заранее спасибо.

+0

использование сафари удаленный инспектор, чтобы увидеть, если вы получаете ошибку JS – jcesarmobile

ответ

0

Проблема, скорее всего, в определении вашего маршрутизатора. Вы не должны использовать "Router.HistoryLocation" https://github.com/rackt/react-router/issues/310

Попробуйте как это без Router.HistoryLocation:

Router.run(routes, function (Handler) { 
 
    React.render(<Handler />, document.getElementById('app')); 
 
});