簡體   English   中英

適用於Cordova的React應用顯示適用於Android的白屏

[英]React app for cordova shows white screen for android

我嘗試將React應用程序轉換為移動應用程序,但在iOS平台上獲得了成功,但是現在,當我嘗試使用android系統時,它顯示白屏死機,而Chrome遠程檢查器沒有顯示任何重要原因,這是chrome日志

在此處輸入圖片說明

這是我的index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta name="format-detection" content="telephone=no" />
    <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" />
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
    <title>MMJ Recs</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
    <link rel="stylesheet" href="./css/main.css"/>
    <script>
        window.prompt = function(){

        }
    </script>
</head>
<body>
    <div id="app"></div>
    <script type="text/javascript" src="cordova.js"></script>
    <script src="./js/index.js"></script>
    <script type="text/javascript" src="https://js.stripe.com/v2/"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="./js/vendor.js"></script>
    <script src="./js/vendor.bundle.js"></script>
    <script src="./js/build.js"></script>
    <script type="text/javascript">
      Stripe.setPublishableKey('pk_test_AzADtnJ7sM7pQJu32JOmHB3M');
  </script>
</body>
</html>

這是我的main.js

import React from 'react';
import Router from 'react-router';
import routes from './routes';
import ReactDOM from 'react-dom';


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

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


window.onload = function(){
    var url = document.URL;
    var isSmart = (url.indexOf("http://") === -1 && url.indexOf("https://") === -1);
    if( isSmart ){
        document.addEventListener('deviceready', startAppCordova, false);
    }
    else{
        startApp();
    }
}

我懷疑JavaScript引擎可能有問題,對於具有舊JS引擎的舊手機,您可以使用從https://cdn.polyfill.io/v2/docs/下載的Polyfill,我用它來解決了這個問題我在連接手機並打開應用程序的情況下運行adb logcat時看到的錯誤:

Uncaught TypeError: Object function Object() { [native code] } has no method 'assign

運行adb logcat來查看您所遇到的錯誤,您可能不會在Chrome控制台中看到該錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM