52

アラートの文字列を次のように変更するにはどうすればよいですか。

(アプリ名/それが何であれ)あなたの現在の場所を使用したい

もちろん、appnameの部分だけを変更したいです。PhoneGapフレームワークを使用する場合、文字列は非常に醜いため、次のようになります。

/var/mobile/Applications/157EB70D-4AA7-826E-690F0CBE0F/appname.app/www/index.html

アイデアを持っている人はいますか?

4

19 に答える 19

94

デバイスの準備ができたら、ジオロケーションを実行する必要があります。たとえば、次の Jquery コードは、厄介なアラートなしで位置情報を取得します。

$(function(){
  document.addEventListener("deviceready", onDeviceReady, false);
})

function onDeviceReady() {
  navigator.geolocation.getCurrentPosition(onSuccess, onError);     
}

function onSuccess(position) {
  // your callback here 
}

function onError(error) { 
  // your callback here
}
于 2011-02-16T15:39:44.193 に答える
17

phonegap 3.0 では、Pius Uzamere による回答に従い、プラグインをインストールする必要があります。

cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git

そうしないと、二重の許可要求が返されます。

于 2013-09-17T01:19:02.290 に答える
8

この質問はかなり古いものですが、同様の質問が見つかりました hereおよびhere .

私の解決策としてNSLocationWhenInUseUsageDescription、.plist ファイルに追加する必要がありました。ただし、地理位置情報プラグインが古かったので、最初に更新する必要があったと思います。次に、Cordova iOS プラットフォームを削除/追加する必要がありました。最後にNSLocationWhenInUseUsageDescription、.plist ファイルに追加しました。

まず、位置情報プラグインを削除/追加します。

cordova plugin rm org.apache.cordova.geolocation
cordova plugin add org.apache.cordova.geolocation

次に、iOS プラットフォームを削除/追加します。

cordova platform rm ios
cordova platform add ios

最後にNSLocationWhenInUseUsageDescription、.plist に追加します。以下を開い/platforms/ios/{project}/{project}-Info.plistて追加します。

<key>NSLocationWhenInUseUsageDescription</key>
<string>[App Name] would like to access your location when running and displayed.</string>

vs vsに関する詳細情報については、このiOS 開発者ライブラリのリンクを参照してください。NSLocationWhenInUseUsageDescriptionNSLocationAlwaysUsageDescriptionNSLocationUsageDescription

于 2015-06-09T20:56:31.660 に答える
7

最後に問題を修正しました。

index.html で、cordova.js を上に移動するだけです

<script src="cordova.js"></script>

最初に含まれる js ファイルとして (特に、maps include js の上にあることを確認してください)。これにより、プロンプトが 1 回だけ表示されるようになります。

他の codejs や ondeviceready は必要ありません。

于 2014-07-18T11:31:33.147 に答える
2

上記の答えはどれもうまくいきませんでした。現在地リクエストはすでに deviceready で実行されていました。config.xml に以下を追加すると、問題が修正されました。

<gap:plugin name="org.apache.cordova.core.geolocation" />
于 2013-12-03T22:29:00.253 に答える
0

1)PhoneGapLibプロジェクトのLocation.mを変更します。navigator.geolocationのすべての参照をnavigator_geoに置き換えます

2)phonegap.jsをphonegap2.jsにコピーし、アプリのルートに配置します。アプリケーションをビルドしてデバイスまたはシミュレーターにロードするたびに、phonegap.jsファイルが再生成されることを学びました。わかった。さて、私はそれを変更する必要があるので、別のものを使用して、将来のアップグレードの面倒に対処しましょう。

3)626のnavigator.geolocationのコンストラクターを作成する行(phonegap2.js内)を... if(typeof navigator._geo == "undefined")navigator._geo = new Geolocation();に変更します。

4)PHONEGAP GPSを使用する場合はいつでも、HTMLでnavigator._geo.getCurrentPositionなどを使用して参照できます。5)PhoneGapを使用するためのインテリジェンスをユーザーに公開することなく、ONEおよびCLEANのロケーションアラート権限をお楽しみくださいHTML/JSを使用してアプリを作成します。

*警告と助けてください!*

watchPosition関数を実行すると、あらゆる種類の統計情報を含む最初の場所の更新が取得されます。その後、常にエラーを報告します。私はこれがこれらのもので正確なGPSを取得するこの30秒の時間のために吸うと思いますか?

http://groups.google.com/group/phonegap/browse_thread/thread/8067c2037816a9ad

于 2010-09-16T13:12:04.773 に答える
0

私はすべての指示に従いましたが、それでも失敗しました。結局、私はPhoneGapデモをいじって、最終的な解決策を見つけました:

  1. すべてのjsファイルとhtmlファイルを同じフォルダー(サブフォルダーも除く)に移動します。おめでとう!問題は解決しました。許可アラートはもうありません:)

  2. ところで、「setTimeout(function(){utility.getGeoData();}、1000);」を使用する方がよいでしょう。「document.addEventListener( "deviceready"、utility.getGeoData()、false);」が見つかりました 私のために働かない。

上記の解決策が見つからない場合に役立つことを願っています:)

幸運を!

于 2011-03-09T03:56:56.123 に答える
0

Phoengap/Cordova バージョン 3.5 はこちら。

上記のマヌエルの回答に似ていますが、今回はプラグインが platform/ios/[appname]/Plugins フォルダーにインストールされません。

私にとっての修正は、../platforms/ios/[appname]/Plugins フォルダーにプラグイン用の新しいフォルダーを手動で作成し、名前を org.apache.cordova.geolocation に変更し、.h と .プラグインの m ファイルをその中に入れます。

geoLocation プラグインの .m および .h ファイルは、[root]/plugins/org.apache.cordova.geolocation/src/ios ディレクトリにあります。

于 2014-11-04T17:33:37.977 に答える
0

Cordova を 3.6 から 4.3 にアップグレードした後、このエラー (および他の多くのエラー) が発生しました。

cordova platform rm iosアップグレード プロセスでいくつかの失敗があったと思います。cordova platform add ios

/!\ iOS プロジェクトの設定がすべて失われ、スプラッシュとアイコンを再アップロードする必要があります。

于 2015-03-05T10:14:33.403 に答える
0

ここでパーティーに遅れましたが、参考のために質問に答えます。答えは、Phonegap に含まれている phonegap.js にある地理位置情報関数を使用することです。このような手順については、Phonegap サイト ( http://www.phonegap.com ) で確認できます。

を使用するnavigator.geolocation場合は、デフォルトの Safari 地理位置情報システムを使用しています。これは、PhoneGap が Safari インスタンスでページを効果的に実行することによって機能するときに発生します。サイトに phonegap.js を含める場合、PhoneGap の Objective-C コードによって公開される別の地理位置情報メソッドを使用できます。これにより、[アプリ名] に許可を求める他のアプリで見られる動作が表示されます。

于 2010-08-04T23:11:40.667 に答える
0

私は何日も同じ問題に苦しんでいて、最終的に解決策を見つけたので、まだ解決できていない人と共有することにしました.

解決策は簡単です。phonegap コマンド ライン インターフェイスを介してプラグインを追加し、プラグイン ファイルが /Plugins ディレクトリにあったにもかかわらず、位置情報プラグインが www ディレクトリ内の plugins ディレクトリにありませんでした。したがって、不足しているファイルを /www/plugins にコピーするだけで完了です。そのように単純です。

不足しているファイルが必要な場合: http://d.pr/f/xqhq

ところで: 私はコルドバ 3.2.0 を使用しています。

これがあなたにとってもうまくいくことを願っています!

于 2013-12-23T21:15:25.163 に答える
-1

「すべてのjsファイルとhtmlファイルを同じフォルダーに移動します(サブフォルダーでさえありません。おめでとうございます!問題は解決しました。許可アラートはもうありません:)」Calebが言うように、cordova.jsファイルをルートと config.xml へのプラグインの追加

于 2014-05-07T14:25:09.550 に答える
-2

プロジェクトのバンドル表示名は何ですか?

デフォルト値から手動で変更してみて${PRODUCT_NAME}ください..

位置アラートを使用するその許可は、バンドルの表示名のみを選択します!!

于 2009-11-04T13:33:22.480 に答える