アラートの文字列を次のように変更するにはどうすればよいですか。
(アプリ名/それが何であれ)あなたの現在の場所を使用したい
もちろん、appnameの部分だけを変更したいです。PhoneGapフレームワークを使用する場合、文字列は非常に醜いため、次のようになります。
/var/mobile/Applications/157EB70D-4AA7-826E-690F0CBE0F/appname.app/www/index.html
アイデアを持っている人はいますか?
アラートの文字列を次のように変更するにはどうすればよいですか。
(アプリ名/それが何であれ)あなたの現在の場所を使用したい
もちろん、appnameの部分だけを変更したいです。PhoneGapフレームワークを使用する場合、文字列は非常に醜いため、次のようになります。
/var/mobile/Applications/157EB70D-4AA7-826E-690F0CBE0F/appname.app/www/index.html
アイデアを持っている人はいますか?
デバイスの準備ができたら、ジオロケーションを実行する必要があります。たとえば、次の 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
}
phonegap 3.0 では、Pius Uzamere による回答に従い、プラグインをインストールする必要があります。
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git
そうしないと、二重の許可要求が返されます。
この質問はかなり古いものですが、同様の質問が見つかりました 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 開発者ライブラリのリンクを参照してください。NSLocationWhenInUseUsageDescription
NSLocationAlwaysUsageDescription
NSLocationUsageDescription
最後に問題を修正しました。
index.html で、cordova.js を上に移動するだけです
<script src="cordova.js"></script>
最初に含まれる js ファイルとして (特に、maps include js の上にあることを確認してください)。これにより、プロンプトが 1 回だけ表示されるようになります。
他の codejs や ondeviceready は必要ありません。
上記の答えはどれもうまくいきませんでした。現在地リクエストはすでに deviceready で実行されていました。config.xml に以下を追加すると、問題が修正されました。
<gap:plugin name="org.apache.cordova.core.geolocation" />
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
私はすべての指示に従いましたが、それでも失敗しました。結局、私はPhoneGapデモをいじって、最終的な解決策を見つけました:
すべてのjsファイルとhtmlファイルを同じフォルダー(サブフォルダーも除く)に移動します。おめでとう!問題は解決しました。許可アラートはもうありません:)
ところで、「setTimeout(function(){utility.getGeoData();}、1000);」を使用する方がよいでしょう。「document.addEventListener( "deviceready"、utility.getGeoData()、false);」が見つかりました 私のために働かない。
上記の解決策が見つからない場合に役立つことを願っています:)
幸運を!
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 ディレクトリにあります。
Cordova を 3.6 から 4.3 にアップグレードした後、このエラー (および他の多くのエラー) が発生しました。
cordova platform rm ios
アップグレード プロセスでいくつかの失敗があったと思います。cordova platform add ios
/!\ iOS プロジェクトの設定がすべて失われ、スプラッシュとアイコンを再アップロードする必要があります。
ここでパーティーに遅れましたが、参考のために質問に答えます。答えは、Phonegap に含まれている phonegap.js にある地理位置情報関数を使用することです。このような手順については、Phonegap サイト ( http://www.phonegap.com ) で確認できます。
を使用するnavigator.geolocation
場合は、デフォルトの Safari 地理位置情報システムを使用しています。これは、PhoneGap が Safari インスタンスでページを効果的に実行することによって機能するときに発生します。サイトに phonegap.js を含める場合、PhoneGap の Objective-C コードによって公開される別の地理位置情報メソッドを使用できます。これにより、[アプリ名] に許可を求める他のアプリで見られる動作が表示されます。
私は何日も同じ問題に苦しんでいて、最終的に解決策を見つけたので、まだ解決できていない人と共有することにしました.
解決策は簡単です。phonegap コマンド ライン インターフェイスを介してプラグインを追加し、プラグイン ファイルが /Plugins ディレクトリにあったにもかかわらず、位置情報プラグインが www ディレクトリ内の plugins ディレクトリにありませんでした。したがって、不足しているファイルを /www/plugins にコピーするだけで完了です。そのように単純です。
不足しているファイルが必要な場合: http://d.pr/f/xqhq
ところで: 私はコルドバ 3.2.0 を使用しています。
これがあなたにとってもうまくいくことを願っています!
「すべてのjsファイルとhtmlファイルを同じフォルダーに移動します(サブフォルダーでさえありません。おめでとうございます!問題は解決しました。許可アラートはもうありません:)」Calebが言うように、cordova.jsファイルをルートと config.xml へのプラグインの追加
プロジェクトのバンドル表示名は何ですか?
デフォルト値から手動で変更してみて${PRODUCT_NAME}
ください..
位置アラートを使用するその許可は、バンドルの表示名のみを選択します!!