Phonegap — лучший способ узнать iso-код страны от пользователя

Каков наилучший и самый быстрый способ получить iso-код страны, запустив сборку приложения с помощью phonegap? Есть функция получения геокоординат, но не кода ISO. Для получения iso-кода, возможно, необходимо вызвать внешний веб-сервис и получить iso по заданным координатам. Есть ли самый простой способ?

Спасибо Ник


person Nik    schedule 02.01.2011    source источник
comment
Если вы знаете координаты широты/долготы - › stackoverflow.com/ вопросы/4497728/   -  person Agnius Vasiliauskas    schedule 02.01.2011


Ответы (2)


Вы ищете, где пользователь находится в данный момент, или что-то более похожее на язык/национальность пользователя? Для последнего вы всегда можете посмотреть, что находится в navigator.language. В зависимости от целевой платформы он предоставит вам либо только код языка («en» на моем тестовом компьютере с Android), либо код языка и код страны («en-us» на моем тестовом компьютере с iOS). Чтобы узнать, что это вам даст, перейдите в стандартном браузере вашего устройства здесь и введите в navigator.language в поле ввода текста.

В противном случае случайный просмотр спецификации геолокации HTML5 указывает на то, что вы либо нужен веб-сервис, либо пакет данных с кодами в приложении. Это кажется довольно хорошим.

person Jacob Oscarson    schedule 02.01.2011

Я обнаружил, что navigator.language иногда дает мне только язык, а не локаль (например, «en», а не «en-gb»). Чтобы решить эту проблему в Android, я создал новый класс java в src/com с именем DeviceCulture.java с этим кодом:

package com;
import java.util.Locale;

public class DeviceCulture {

    public String get() {
        try{            
            return Locale.getDefault().toString();//get the locale from the Android Device      
        }catch(Exception e){
            return "";
        }   
    }
}

Затем добавьте это перед строкой super.loadUrl в /src/com/phonegap/YOUR_APP/App.java.

DeviceCulture deviceCulture = new DeviceCulture();
appView.addJavascriptInterface(deviceCulture , "DeviceCulture");

Затем в вашем javascript используйте это, чтобы получить локаль (например, «en_GB»)

window.DeviceCulture.get();
person Patrick64    schedule 10.04.2012
comment
вы упомянули appView.addJavascriptInterface(deviceCulture, DeviceCulture); который нужно вставить перед /src/com/phonegap/YOUR_APP/App.java. Что это за приложение? - person shailbenq; 24.10.2012