17

phonegap/cordova アプリを開発しています。ブラウザー ビュー内で携帯電話のネイティブ ナビゲーション アプリを開く方法はありますか? または、html5 アプリからネイティブ マップ アプリケーションを開くベスト プラクティスはありますか? それとも、それらはすべてプラットフォーム固有ですか?

Androidの特定のバージョンで以下が機能するいくつかの場所を読みました

<a href="geo:some address here" />Navigate to here</a>

これがiOSで機能すること

<a href="http://maps.apple.com/?daddr=San+Francisco,+CA&saddr=cupertino">Directions</a>

Phonegap がこのような機能を実装していないことに驚いています。

4

5 に答える 5

17

iOS 5 (Google マップ) および iOS 6 (Apple マップ) でネイティブ ナビゲーション アプリを開くには、魔法の「maps:」プロトコルを使用します。window.location = "maps:daddr=50.4,-4.5"

ただし、Android でネイティブの Google Navigator アプリを起動するには、phonegap プラグインを使用する必要があります。私は自分の目的のためにこれを書きました。

更新 プラグインは Phonegap 3.x 用に更新され、iOS で Google マップを優先するオプションを含め、Android、iOS、および Windows Phone をサポートします。

プラグインはこちら: https://github.com/dpa99c/phonegap-launch-navigator

于 2013-06-22T21:44:32.687 に答える
7

記録として、誰かが私と同じように Google でこのスレッドを見つけた場合、Ionic フレームワークを使用して次の 2 つのことを行うことで、直接機能しました。

  • アプリの myapp.config(...) に追加します

    $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|geo):/);
    

    ( $compileProvider を依存関係として追加することを忘れないでください)

  • config.xml に次の行を追加します。

    <access origin="geo:*" launch-external="yes"/>
    

それで全部です。

于 2015-04-27T14:53:02.140 に答える
7

プラグインは素晴らしいです!共有してくれてありがとう!アプリで試してみましたが、残念ながらPhonegapバージョン3.xがあり、プラグインはPhonegap 2.xでしか機能しません:(

したがって、Phonegap 3.x で動作させるために、github リポジトリからプラグインを取得し、3.x で動作するようにいくつかの変更を加えました。

Phonegap 3.x 用に変更された PhoneNavigator プラグインは、私の github リポジトリからダウンロードできます: https://github.com/viktor0710/PhoneNavigator-Phonegap-3.x.git

Phonegap 3.x プロジェクトに統合する方法:

  1. コンソール ウィンドウを開く
  2. Phonegap アプリのルートに移動します
  3. 次に実行します: phonegap local plugin add https://github.com/viktor0710/PhoneNavigator-Phonegap-3.x.git
  4. アプリのレポ (www/phonenavigator.js) から「phonenavigator.js」をコピーします (例: yourapp/www)
  5. アプリに「phonenavigator.js」を含めます。
  6. アプリのレポ (www/cordova.js) から "cordova.js" をコピーします (例: yourapp/www)
  7. アプリに「cordova.js」を含めます。

それの使い方:

//function declaration
function navigateTo (lat, lon, successFn, errorFn) {
    cordova.require('cordova/plugin/phonenavigator').doNavigate(lat, lon, successFn, errorFn);
}

//set lat and lon variables. Most probably read them from the UI
var latitude =  48.137607;
var longitude = 11.568569;

//call function
navigateTo(
    latitude,
    longitude,
    function(){
        console.log("Successfully opened navigator");
    },
    function(){
        console.log("Error opening navigator");
    }
);
于 2013-11-02T14:10:53.960 に答える
7

上記のように、以下は Galaxy S4 Android (テスト済み) で動作し、Google Maps/Navigation アプリと waze を起動します。

<a href="geo:37.786971,-122.399677;u=35">Wikimedia Headquarters</a>

クレジット: http://en.wikipedia.org/wiki/Geo_URI#Example

こちらの回答もご覧ください: https://stackoverflow.com/a/19765368/2728686

于 2013-11-04T10:09:03.273 に答える