複数の CordovaWebViews を含む Android アプリケーションがあります。(注: ほとんどなじみのないアプリのメンテナンスを行っています。) さまざまな WebView が、CordovaWebView の loadUrl 関数を使用して、"javascript: ('toggleMenu();');"という文字列でメッセージを相互に送信します。. (toggleMenu() 関数は私の
WebView のレイアウト方法にいくつかの変更を加えました (スライド アウト メニューとメイン ビューの両方を保持する別のトップレベル ビューを追加しました)、突然これらの loadUrl 呼び出しがタイムアウトになりました。 (2774): CordovaWebView: タイムアウト エラー!" logcatに表示される行。
読み込んでいる URL は非常に小さな JavaScript スニペットなので、どうしてこうなったのでしょうか? このエラーの原因はどこにあるのでしょうか? logcat は、呼び出しが Android WebView インスタンスに正しく送信されたことを通知することを除けば、あまり役に立ちません。
D/NWCPanels(2774): <9956> sendMessage - HEADER; target: main
D/NWCPanels(2774): <9956> sendMessage - script:javascript: ('toggleMenu();');
D/UiTask(2774): <1> run - url: javascript: ('toggleMenu();');
D/WebView(2774): loadUrlImpl: called
さて、呼び出しは Android の WebView に到達しました。コードが機能したと考えていることを示すデバッグ ステートメントがあり、実際に webkit にアクセスしているように見えます。
D/CordovaLog(2774): - Debug - toggleMenu from header. result: true
D/webcore(2774): CORE loadUrl: called
D/webkit(2774): Firewall not null
D/webkit(2774): euler: isUrlBlocked = false
ブロックされていないので、私の URL を読み込もうとしているのかもしれません。しかし、その後、〜3秒後:
E/CordovaWebView(2774): CordovaWebView: TIMEOUT ERROR!