Как узнать, работает ли мое JavaScript-приложение PhoneGap в настоящее время на Android или iOS?

Название говорит само за себя: предположим, у меня есть приложение PhoneGap, созданное как для Android, так и для iOS. Пользователь запускает мое приложение на своем мобильном телефоне. В какой-то момент я хочу дать другое сообщение, если это Android или iPhone... Как я могу обнаружить это в своем коде JavaScript?

Также: Могу ли я сделать это без дополнительного плагина PhoneGap, который будет запрашивать у пользователя дополнительные разрешения?


person Free Bud    schedule 06.11.2017    source источник


Ответы (2)


Если вы хотите использовать платформу устройства, вы можете использовать приведенный ниже код.

var deviceType = (navigator.userAgent.match(/iPad/i))  == "iPad" ? "iPad" : (navigator.userAgent.match(/iPhone/i))  == "iPhone" ? "iPhone" : (navigator.userAgent.match(/Android/i)) == "Android" ? "Android" : (navigator.userAgent.match(/BlackBerry/i)) == "BlackBerry" ? "BlackBerry" : "null";

alert(deviceType);

Или в соответствии с новыми изменениями, которые вы можете использовать

// Depending on the device, a few examples are:
//   - "Android"
//   - "BlackBerry"
//   - "iOS"
//   - "webOS"
//   - "WinCE"
//   - "Tizen"
//   - "browser"
var devicePlatform = device.platform;

devicePlatform вернет указанную вами строку типа устройства. Это не потребует каких-либо плагинов или разрешений.

person Flutterian    schedule 06.11.2017
comment
согласно новым изменениям ?? - person Free Bud; 06.11.2017
comment
Выше приведен чистый код javascript. Ниже один был представлен телефонным разрывом. Вы можете использовать кого угодно. Пожалуйста, дайте мне знать, это то, что вы искали? - person Flutterian; 06.11.2017
comment
Это дает «Android» на моем Samsung Galaxy. На айфоне еще не проверял. На моем ПК (используя PhoneGap Desktop с браузером) я получаю Uncaught ReferenceError: устройство не определено - person Free Bud; 06.11.2017
comment
Вы тестировали код на iphone? Если это работает, пожалуйста, проголосуйте за ответ, чтобы другие также легко получили решение. - person Flutterian; 08.11.2017

используйте это для обнаруженного типа устройства

if (/(android)/i.test(navigator.userAgent)) {  // for android & amazon-fireos

   alert("Android ");
} else if (/(ipod|iphone|ipad)/i.test(navigator.userAgent)) {  // for ios

   alert("IOS");
}
person Younes Zaidi    schedule 06.11.2017