Расположение разрешения оповещения на iPhone с PhoneGap

голоса
51

Как изменить строку на уведомления о поговорке:

(APPNAME / все это) хотел бы использовать свое текущее местоположение

Конечно, я только хочу , чтобы изменить APPNAME часть. Потому что , когда вы используете рамки PhoneGap, строка очень некрасиво, что - то вроде этого:

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

Кто-то, имеющий идею?

Задан 04/11/2009 в 13:49
источник пользователем
На других языках...                            


19 ответов

голоса
92

Вам нужно сделать геолокации после того, как устройство будет готово. Следующий код Jquery, к примеру, Geolocate без этого отвратительного предупреждения:

$(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
}
Ответил 16/02/2011 в 16:39
источник пользователем

голоса
17

На PhoneGap 3.0 ответа Пия Uzamere необходимо следовать, и плагин установлен.

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

в противном случае вы получите запрос на двойное разрешение.

Ответил 17/09/2013 в 02:19
источник пользователем

голоса
13

Я просто следовал документацию и решить ее. Откройте терминал и перейдите в ваш проект и введите следующую команду. $ Cordova плагин добавить https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.git

Кроме того, добавьте это в config.xml

<feature name="Geolocation">
    <param name="ios-package" value="CDVLocation" />
</feature>

Это позволит решить эту проблему. :)

Источник: http://docs.phonegap.com/en/3.0.0/cordova_geolocation_geolocation.md.html#The%20Command-line%0AInterface

Ответил 01/07/2014 в 19:53
источник пользователем

голоса
8

Хотя этот вопрос намного старше, я нашел подобные вопросы здесь и здесь .

Для моего разрешения, я должен был добавить NSLocationWhenInUseUsageDescriptionк .plist файла. Тем не менее, я полагаю , так как мой геолокации плагин устарел, я должен был обновить его первым. Тогда я должен был удалить / добавить платформу Кордова 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>

Смотрите эту IOS ссылку Библиотека разработчика для получения более подробной информации о NSLocationWhenInUseUsageDescriptionсравнении в NSLocationAlwaysUsageDescriptionсравнении NSLocationUsageDescription.

Ответил 09/06/2015 в 20:56
источник пользователем

голоса
7

Наконец исправили проблему.

ВО index.html просто переместить cordova.js вверх

<SCRIPT SRC = "cordova.js"> </ SCRIPT>

как первый JS файл, который будет включен (особенно убедитесь, что он выше карты включают в себя JS). Это позволит убедиться, что подсказка показывает только один раз.

Никакие другие codejs или ondeviceready не требуется.

Ответил 18/07/2014 в 12:31
источник пользователем

голоса
2

После того, как ищут решения я уже создан, просто добавить переменный, когда вы добавили плагин как эта линия

cordova plugin add cordova-plugin-geolocation --variable GEOLOCATION_USAGE_DESCRIPTION="your usage message"
Ответил 14/08/2017 в 14:00
источник пользователем

голоса
2

Чтобы решить эту проблему , я должен бежать , cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-geolocation.gitкоторый добавляет (автоматически) в config.xml следующее:

<feature name="Geolocation">
     <param name="ios-package" value="CDVLocation" />
</feature>

Для того, чтобы получить вещи работать я должен поставить также эти строки в config.xml:

<plugins>
        <plugin name="Device" value="CDVDevice" />
        <plugin name="Logger" value="CDVLogger" />
        <plugin name="Compass" value="CDVLocation" />
        <plugin name="NetworkStatus" value="CDVConnection" />
        <plugin name="Debug Console" value="CDVDebugConsole" />
        <plugin name="Geolocation" value="CDVLocation" />
        <plugin name="SplashScreen" value="CDVSplashScreen" />
        <plugin name="Battery" value="CDVBattery" />
        <plugin name="Globalization" value="CDVGlobalization" />
    </plugins>

Надеюсь, что это может быть полезно.

Ответил 07/11/2014 в 16:44
источник пользователем

голоса
2

Ни один из вышеперечисленных ответов не работает для меня. Мой запрос местоположения уже обстреле deviceready. Добавление следующих строк в файле config.xml исправили проблему:

<gap:plugin name="org.apache.cordova.core.geolocation" />
Ответил 03/12/2013 в 23:29
источник пользователем

голоса
1
  • Просто в том числе файла «cordova.js» в вашем HTML файл, где вы обращаетесь это место будет решить эту проблему. НИЧЕГО FANCY ТРЕБУЕТСЯ.
Ответил 30/11/2016 в 14:42
источник пользователем

голоса
1

После того , что мой geolocationзапрос был вызван после того , как устройство было готово, убедившись , что геолокация плагина правильно установлена и настроен, я все еще получаю неэстетичное всплывающее окно.

Я решил его перемещения и ссылки мой cordova.jsфайл и cordova_plugins.jsфайлы в корневой директории моего приложения (они были первоначально в подпапках), поэтому путь к cordova.jsбудет:

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

Я считаю, что это должно быть включено в документации (может быть, это и есть, но мне не удалось найти его)

Ответил 28/11/2014 в 11:49
источник пользователем

голоса
0

В моем случае, я использую Кордову / Ионные и испытал те же проблемы. Это из-коды, прежде чем устройство будет готово. Я просто обернуты код с document.addEventListener на «deviceready». Например:

document.addEventListener("deviceready", function () {
  $cordovaGeolocation.getCurrentPosition(options).then(function(position){
      ...your code here...
    });
});

Тогда не появится дополнительное сообщение.

Ответил 02/05/2017 в 05:45
источник пользователем

голоса
0

Получил эту ошибку (и много других) после обновления Кордовы от 3,6 до 4,3.

Я думаю , что есть некоторые сбои в процессе обновления и только рабочий раствор для меня было cordova platform rm iosтоcordova platform add ios

/! \ Вы потеряли все ваши настройки проекта Ios и вам нужно выкладывание всплеска и значков.

Ответил 05/03/2015 в 10:14
источник пользователем

голоса
0

Phoengap / Кордова версии 3.5 здесь.

Подобный ответ Мануила выше, но на этот раз плагин не устанавливается в / СВН / [имя_приложения] папке платформы / Plugins.

Исправление для меня было просто вручную создать новую папку для плагина в папку ../platforms/ios/[appname]/Plugins> переименовать его в org.apache.cordova.geolocation> затем скопировать .h и. м файлы плагина в него.

Вы можете найти .m и .h файлы для Геопозиционирования в [корне] /plugins/org.apache.cordova.geolocation/src/ios каталога.

Ответил 04/11/2014 в 17:33
источник пользователем

голоса
0

Так как я боролся в течение нескольких дней теперь с той же проблемой, и, наконец, нашел решение, я решил поделиться ею с кем-либо, кто еще не был в состоянии это исправить.

Решение простое: геолокации плагин отсутствует в каталоге плагинов в директории WWW, несмотря на то, что я добавил плагин через интерфейс командной строки PhoneGap и плагин файлы были в каталоге / Plugins. Таким образом, у вас есть только скопировать недостающие файлы в / WWW / плагинов, и вы сделали. Просто просто.

Если кому -то нужно недостающие файлы: http://d.pr/f/xqhq

Кстати: я использую Кордову 3.2.0.

Я надеюсь, что это работает для вас, как хорошо!

Ответил 23/12/2013 в 22:15
источник пользователем

голоса
0

Я следовал всем инструкциям , и он все еще не удалось. В конце концов , я играл с демо PhoneGap и нашел окончательное решение :

  1. Переместить все файлы JS и HTML-файлы в ту же папку (даже не подпапки). Поздравляем! не проблема решена, никакого разрешения оповещения больше:)

  2. Кстати, Вы бы лучше использовать "SetTimeout (функция () {utility.getGeoData ();}, 1000);" Я нашел "document.addEventListener (" deviceready "utility.getGeoData (), ложные);" не работает для меня.

Надежда, что помогает, когда вы не найдете никакого решения выше:)

Удачи!

Ответил 09/03/2011 в 04:56
источник пользователем

голоса
0

1) изменить Location.m в проекте PhoneGapLib. заменить все ссылки navigator.geolocation с navigator_geo

2) Копия phonegap.js в phonegap2.js и положить в корень приложения. Теперь я понял, что каждый раз, когда я строй моего приложения и загрузить его на устройство или тренажер, файл phonegap.js регенерируется. ОК. Ну мне нужно изменить его так позволяет просто использовать другой и иметь дело с утомительной модернизации в будущем.

3) Изменить строку (в phonegap2.js), что создает конструктор для navigator.geolocation на 626, чтобы быть ... если (TypeOf navigator._geo == "не определено") navigator._geo = новый геолокации ();

4) Теперь в вашем HTML, когда вы хотите использовать материал PhoneGap GPS, вы можете ссылаться на него с navigator._geo.getCurrentPosition или аналогичными 5) Наслаждайтесь один, а чистые, расположение оповещения разрешения, не раскрывая свои пользователь своего интеллекта, чтобы использовать PhoneGap и создать приложение с HTML / JS.

* CAVEAT И ПОЖАЛУЙСТА ПОМОГИТЕ! *

Если я запускаю функцию watchPosition, я получаю первое обновление местоположения со всеми видами статистики. Там после, он всегда сообщит об ошибке. Я предполагаю, что это отстой для этого 30-секундного времени получать точные GPS на эти вещи?

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

Ответил 16/09/2010 в 14:12
источник пользователем

голоса
0

Я опоздал на вечеринку здесь, но ответить на вопрос , для справки. Ответ заключается в использовании геолокации функции , найденной в phonegap.js , которая включена с PhoneGap. Вы сможете найти такие инструкции на сайте PhoneGap на http://www.phonegap.com .

Если вы используете navigator.geolocation, вы используете Safari геолокации системы по умолчанию. Это происходит , как PhoneGap работает эффективно выполнять ваши страницы в Safari , например. Если включить phonegap.js в свой сайт, вы можете использовать отдельный метод геолокации подвергается кодом PhoneGap в Objective-C, который представит поведение видели в других приложениях , где он просит разрешения [название приложения].

Ответил 05/08/2010 в 00:11
источник пользователем

голоса
-1

«Двигайтесь все JS файлы и HTML-файлы в ту же папку (даже не подпапки) ПОЗДРАВЛЯЕМ Проблема решена, не тревога разрешения больше:.!)» Как Калеб говорит работает для меня, ну только переместив cordova.js файл корень и добавляя плагин config.xml

Ответил 07/05/2014 в 15:25
источник пользователем

голоса
-2

Что такое отображаемое имя Bundle вашего проекта?

Попробуйте изменить вручную значения по умолчанию ${PRODUCT_NAME}и посмотреть ..

Это разрешение использовать оповещение о местоположении выбирает только ваше расслоение отображаемого имени !!

Ответил 04/11/2009 в 14:33
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more