PhoneGap 1.9からPhoneGap 3.0にアプリをアップグレードしています。 console.log()関数はもう機能していません。以前は、出力はXCodeコンソールで作成されていました。ロギング機能を復元する最良の方法は何ですか?
読みました: PhoneGap 2.0はXCodeにconsole.logを表示しません しかし、PhoneGap 3.0では、device.Readyイベントの後でもconsole.logは機能しません。
また、JavaScriptのエラーをxcodeで直接確認することにも興味があります。
プロジェクトにデバッグコンソールプラグインを追加する必要があります。
phonegap local plugin add https://git-wip-us.Apache.org/repos/asf/cordova-plugin-console.git
Phonegap/cordovaの以降のバージョンでは、プロジェクトにデバッグコンソールプラグインを追加するには:
cordova plugin add org.Apache.cordova.console
少なくとも私の場合、ロガーのdeviceready
関数が呼び出されていなかったことが判明しました。 logger.js
の最後の行。
document.addEventListener("deviceready", logger.__onDeviceReady, false);
解決策(または実際の回避策)は、deviceready
リスナー関数からlogger.__onDeviceReady
関数を呼び出すことです。
function onDeviceReady() {
if (window.cordova.logger) {
window.cordova.logger.__onDeviceReady();
}
}
document.addEventListener('deviceready', onDeviceReady, false);
JSconsole.comextremelyモバイルデバイスからコンソールログをリモートでキャプチャするのに役立ちました。
設定方法は次のとおりです。
あなたのアプリのindex.htmlに、インクルード(IDを変更):
<script src="http://jsconsole.com/remote.js?<MAKE UP SOME UNIQUE ID>"></script>
:listen <YOUR UNIQUE ID>
モバイルデバイスでアプリを開くと、コンピューターにコンソールログが表示されます。
Samの答えのようにコンソールプラグインを追加し、すべてのページにcordova.jsを含めるようにしてくださいそうしないとプラグインが機能しません。
Phonegapプラグインを使用する場合、スクリプトタグにphonegap.jsを追加していましたが、プラグイン(any)はindex.htmlページでのみ機能することに気付きました。 phonegap.jsをcordova.jsに変更すると、プラグイン(通知、カメラなど)が残りのページで機能し始めました。これが誰かを助けるなら。
問題
コンソールプラグインをiOSプラットフォームに追加するとき(または再インストール後)にコマンドラインインターフェイスを介して次のエラーメッセージが表示されます:
"CDVPluginクラスCDVLogger(pluginName:Console)は存在しません。"
ソリューション
Xcodeプロジェクトを開き、[ビルドフェーズ]タブに移動します。次に、「ソースのコンパイル」という名前のドロップダウンを開きます。リストの最後にある「+」記号をクリックして、「CDVLogger.m」またはその他の不足しているソースを追加します。
Consoleプラグインを追加する以外に、なぜ機能しない可能性があるかという別の仮定があります。
phonegapのconsole.logは非同期に呼び出されるため、将来の呼び出しが失敗すると、関数全体が失敗し、その中のすべてのログ呼び出しが飲み込まれます。
receivedEvent = function( id ) {
alert( 'This message is displayed because alert is called synchronously ')
console.log( 'This will not be displayed in Phonegap only in browser' )
callingAFunctionWhichDoesNotExist()
console.log( 'This will neither be displayed in Phonegap nor in browser' )
}
Cordovaコンソールプラグインをインストールしている場合、アプリを実行すると次のようになります。
phonegap run iOS
ログは次の場所にあります。
[your project dir]/platforms/ios/cordova/console.log
iOSの場合。すべてのコンソールログが期待どおりに表示されます。
GapDebug は本当に便利だと思いました。他の[咳咳]とは異なり、ローカルアプリからログをコンソールで再生できます