Googleマップを使用して、ユーザーが検索した場所の地図を表示する簡単なアプリケーションを作成しようとしています。EclipseでPhonegapプロジェクトを作成しましたが、AndroidとiPhoneで非常にうまく動作しますが、マップはBlackberryでレンダリングされません。テストに使用しているBlackberryはBold9700で、OSv5からOSv6にアップグレードされています。モバイルが「*」サブドメインにアクセスできるようにconfig.xmlを変更しました。コードを実行するときは、キーを使用してGoogleマップを呼び出します。また、Googleマップが読み込まれた後もコードを続行できるように、コールバック関数を必ず含めます。
問題は、アプリケーションがBlackberry Boldで起動されると、マップページが読み込まれ、まったく何も実行されないことです。一方、AndroidおよびiPhoneプラットフォームでマップページが読み込まれると、コールバックがGoogleマップによって呼び出されていることがわかります。なぜこの問題がブラックベリーでのみ発生しているのか、私にはまったくわかりません...私はこの問題を調査して、すでに試した提案を見つけました。私は何かが欠けていることを知っていますが、それが何であるかを理解することはできません。
これは私のHTMLコードです:
<body onload="init()">
<div id="map_canvas">
</div>
</body>
そしてこれは私のJavascriptコードです:
function init(){
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://maps.googleapis.com/maps/api/js?key=GoogleMapKey&sensor=false&callback=codeAddress";
document.body.appendChild(script);
}
私のcodeAddress
コールバックメソッドでは、最初にそれが呼び出されたalert("hello")
ことを確認するだけです。codeAddress
AndroidとiPhoneで、アラートが表示されます。次に、マップをdiv要素に割り当てます。私が抱えている問題は、BlackberryがGoogleマップに接続していないように見えるため、Googleマップの読み込みが完了したときにコールバックを実行しないことです。
興味があったので、静的マップも試してみましたが、運が悪かったです。忘れている権限はありますか?これは、config.xmlにあるものです。
<access subdomains="true" uri="http://gstatic.com"/>
<access subdomains="true" uri="http://google.com"/>
<access subdomains="true" uri="http://googleapis.com"/>
<access subdomains="true" uri="*"/>
また、BB OS v5はGoogleマップと新しいバージョンのOSをサポートしていないため、アップグレードされたBlackberryBoldテストデバイスをサポートしていることも読みました。