質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

解決済

iOSアプリのwebViewで、GoogleMapsEmbedAPIで生成された地図からGoogleMapアプリを開きたい

koikuti
usukuti_hanako

総合スコア50

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1回答

0リアクション

0クリップ

226閲覧

投稿2022/08/29 11:03

前提

iOSアプリ上で開いたWebView上に表示されているGoogleMapsEmbedAPIで生成された地図をクリックしたとき、
端末にインストールされているGoogleMapアプリが立ち上がるようにしたい。

この地図は、GoogleMapsEmbedAPIで生成されており以下のスクショのように表示されています。イメージ説明

このとき、左上の拡大地図を表示ボタンをタップした場合、端末にインストールされているGoogleMapアプリが立ち上がる
(インストールされていない場合、Safariのアプリが立ち上がりGoogleMapが表示される。)
のですが、地図上(例えば東京駅の部分)をタップした場合、そのままWebView上でブラウザ版(?)のGoogleMapが表示されてしまいます。

地図上をタップした場合も、拡大地図を表示と同じ挙動にしたいのですが、方法が分からない状態です。

WebViewに表示されるWeb側は、React/Typescriptで作成しています。

実現したいこと

  • 地図上をタップした場合も、拡大地図を表示と同じ挙動にしたい。

該当のソースコード

TypeScript/React

<iframe src={`https://www.google.com/,aps/embed/v1/place?key=API_KEY&q=0.000,0.000`} />

試したこと

  • よくあるアプリを立ち上げる方法のURLスキーム(<a href="maps:q=0.000,0.000">Mapアプリで開く</a>みたいな)の書き方をすれば良いと思ったのですが、googleのAPIによって自動的に生成される部分であり、自分で書き換えられないと思っています。
  • 試しに、デベロッパーツールから、Htmlを直接書き換えて、hrerfの内容をmaps:に書き換えてとりあえず挙動だけでも確認しようと思ったのですが、こちらもうまく行かず、WebView上でそのままGoogleMapが表示されてしまいました。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

koikuti

2022/09/06 07:40

hoshi-takanorさん 情報ありがとうございます。 そちらのページを参考に、リクエストURLを検証して、GoogleMapのものだった場合、 maps:緯度経度 に置き換え、 ``` UIApplication.shared.open(url) decisionHandler(.cancel) return ``` と処理するような方法など、色々試してなんとか解決しました。 (Swiftの文字列切り出しなどがチョット大変だったのは、また別のお話)

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Google API

Googleは多種多様なAPIを提供していて、その多くはウェブ開発者向けのAPIです。それらのAPIは消費者に人気なGoogleのサービス(Google Maps, Google Earth, AdSense, Adwords, Google Apps,YouTube等)に基づいています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています