3

埋め込まれた Google マップ マップで構成される Web ページを読み込む UIWebView があります。ユーザーが Google マップをパンしている限り、iOS アプリがアクションを実行するようにします。(私は、Javascript と Objective-C コードの間をブリッジする標準的な方法を使用しています。つまり、IFrame を作成し、ページの読み込みとして反対側でそれを取得します。その部分は正常に動作しています。)

私が抱えている問題は、iPhone の Safari で実行されている Google Maps API が継続的に「パン」イベントを取得しないことです。パンニングの最後に 1 つのイベントのみをピックアップします。(これは、Safari 内で使用できる iPhone シミュレーター Web インスペクター ツールを使用してわかりました。) 対照的に、デスクトップ Safari で実行されている Google マップは、ユーザーがマップをパンするたびにイベントの継続的なストリームを取得します。これが私が望んでいることです。

これは、モバイルと. デスクトップ サファリ。

google.maps.event.addListener(map, 'bounds_changed', function(){
    console.log("This browser is noticing panning.")
})

要約すると、デスクトップ Safari では「境界変更」アクション中に連続して印刷されますが、モバイル Safari ではアクションの最後に 1 回だけ印刷されます。

これは Google マップの問題ですか、それとも iOS Safari の問題ですか? どうすれば修正できますか?

編集: iOS Safari では「bounds_changed」イベントが適切にトリガーされませんが、「ドラッグ」イベント継続的にトリガーされます。ただし、map.getBounds()マップの境界 ( で取得) は、ドラッグ モーションが完了するまで更新されないため、境界が必要な場合に「ドラッグ」をリッスンしてもあまり役に立ちません。

4

0 に答える 0