私はcordovaに関して非常に困難で完全にグーグルできない問題を抱えています。
--debug
モードで完全にコンパイルされて動作しているプログラムは、モードでのコンパイル後に動作を停止し--release
ます。ソースが同一であり、効果が一定であることを確認しました。
--debug
ビルドと--release
ビルドの唯一の違いは、--release
ビルドがSSL接続を開くことができないことです。
この問題は非常に狭く局所化されています。私の場合は次の行です。
Socket = new WebSocket('wss://376.su/');
私の友人が次の行で同じエラーの発生を報告しました:
<img src="https://blabla" />;
UPD:問題は解決しました。答えを参照してください。
私は問題の正確な原因を特定し、完璧な解決策を見つけました。それは、それぞれが深刻な誤解を招く2つの別々の問題の重ね合わせであることが判明しました。
Thawteからの私のSSL証明書は(そのコストにもかかわらず)Android 5.1.1によって有効なものとして認識されません(すべてのデスクトップブラウザーによって認識されますが)
の--debug
フラグは、cordova build
証明書の「エラー」を(サイレントに)単に無視します。
プロジェクトのディレクトリに移動し、次のファイルを見つけます。
platforms/android/CordovaLib/src/org/apache/cordova/engine/SystemWebViewClient.java
メソッド定義(onReceivedSslError
)と次の条件を見つけます。
(appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0
これは作るものである--debug
と--release
異なります。証明書の「エラー」を無視するには、次のコードを実行する必要があります。
handler.proceed();
return;
このファイルは、ビルドプロセスを通じて存続します。次回プロジェクトにプラットフォームを追加するときは、これらの準エラーを無視することを忘れないでください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加