iOS版PhoneGapでリモートのGoogle Analyticsが動かない場合の対処法

特にエラーログとか出てないけど__utm.gifアクセスしてないしどう考えても動いてなくて、おかしいと思って調べていたら海外で同じ問題にぶち当たって解決したっぽい人を見つけた。

Tracking beacon, utm.gif, is not sent when Cordoava javascript is included and viewed on an iPad. - Google グループ

  • CordovaのJavaScriptを読み込むとiOSのWebViewではnavigator.javaEnabled()が例外を出すようになる
  • Google AnalyticsJavaScript内で例外が起きて正常に処理されなくなる
  • navigator.javaEnabled()を上書きして解決

という雰囲気だった。

手元のコードに、

    navigator.javaEnabled = function() {
        return false;
    }

とか適当に追記してリモートインスペクタで確認してみたところ、確かに__utm.gifにアクセスしにいってるので動いている様子だった。

わけがわからないしこの外人はどうやってこの原因を突き止めたのか気になる。ステップ実行してったのかな…。