0

Windows 10周年のアップデートが開始されるまでは問題なく動作するSencha Touchアプリがあります。新しいSDKでは、ストアパッケージをビルドした後、私のアプリケーションのonDeviceReadyイベントは発生しません。 しかし、それは完全にデバッグモードで動作します。onDeviceReadyがCordova Windows 10アプリで起動しないリリースモードでのみ

これは.NETネイティブツールチェーンと関係があります。しかし、私は3日間のトラブルシューティングやたくさんのグーグル・グーグルではまだ失われています。ここで私がすでに試したことは次のとおりです。

  • 最新のSencha CMDバージョンを使用して再生成されたSencha Touchアプリ。
  • コードバー、プラットフォーム、プラグインの最新バージョンを一から削除して追加しました。
  • index.htmlファイルを可能な限り最小限に抑えて、このファイル内のコードと何か関係があるかどうかを確認します。

以下は、私がインストールしたプラグインの一覧です。

com.phonegap.plugins.PushPlugin 2.5.0 "PushPlugin" 
com.verso.cordova.clipboard 0.1.0 "Clipboard" 
cordova-plugin-camera 2.3.0 "Camera" 
cordova-plugin-compat 1.1.0 "Compat" 
cordova-plugin-contacts 2.2.0 "Contacts" 
cordova-plugin-device 1.1.3 "Device" 
cordova-plugin-device-orientation 1.0.4 "Device Orientation" 
cordova-plugin-file 4.3.0 "File" 
cordova-plugin-geolocation 2.4.0 "Geolocation" 
cordova-plugin-inappbrowser 1.5.0 "InAppBrowser" 
cordova-plugin-media 2.4.0 "Media" 
cordova-plugin-network-information 1.3.0 "Network Information" 
cordova-plugin-screen-orientation 1.4.2 "Screen Orientation" 
cordova-plugin-statusbar 2.2.0 "StatusBar" 
cordova-plugin-whitelist 1.3.0 "Whitelist" 
cordova-sms-plugin 0.1.11 "Cordova SMS Plugin" 
cordova.plugins.navbar 1.0.0 "NavBar" 
phonegap-plugin-push 1.9.0 "PushPlugin" 

body onloadイベントが発生しない場合、私は疑いがありました。したがって、私はonLoad()関数をhtml本文内のscriptタグ内でも呼びました。運がない。

index.htmlを本体

<body onload="onLoad()"> 
    <div id="appLoadingIndicator"></div> 
    <script type="text/javascript"> 
     onLoad(); 
     var apploading = document.getElementById('appLoadingIndicator'); 
     apploading.style.lineHeight = document.body.clientHeight + 'px'; 
     var img = document.createElement('img'); 
     img.setAttribute('src', resourceURL + '/loading/logo-splash.png'); 
     apploading.appendChild(img); 
    </script> 
</body> 

のonLoad関数定義

function onLoad() { 
    console.log('xxxxxx addEventListener onDeviceReady'); 
    document.addEventListener("deviceready", onDeviceReady, false); 
    document.addEventListener("resume", onDeviceResume, false); 
} 

誰もが任意の同様の問題に遭遇していますか?これに関するヒントはとても役に立ちます。

+0

に空白コルドバや煎茶タッチアプリケーションでそれを試してみていただけますか? –

+0

空のアプリは問題なく動作します。これはすでに2年以上店舗に入っているかなり大きいアプリです。とにかく、私はそれを解決しました。ここで回答として投稿します。 – vahissan

答えて

0

私は、onDeviceReadyが実際には起動していることがわかりましたが、5秒以上たってから発生しました。 onchaviceReadyが起動する前にSencha Touchアプリが読み込まれていて、起動中にdeviceオブジェクトにアクセスしていたのはundefinedでした。これにより、アプリがクラッシュしました。したがって、onDeviceReadyハンドラ内でアプリを起動すると、そのトリックが実行されました。

onDeviceReady()のindex.htmlで

function onDeviceReady() { 
    if (Ext.os.is.Phone) { 
     myApp.app.launchPhone(); 
    } else { 
     myApp.app.launchTablet(); 
    } 
    ... 
} 

打ち上げは()app.js

launch: function() { 
    // left empty intentionally 
} 
関連する問題