Ich entwickle Apps für Android/iOS mit Cordova/Phonegap. Ich verwende generell eine einzige Codebasis für meine Web- und mobilen Inhalte. Ich verwende eine SQLite-Datenbank und/oder andere native Plugins, wenn es sich um eine mobile App handelt, und muss diese LOCs vermeiden, wenn ich im Web bin.Cordova/jQuery - Identifizieren, ob Ihre App im Web/Mobile Browser oder in der mobilen App (Android/iOS) ausgeführt wird
Aber ich habe ein Problem mit der Identifizierung, ob meine App in einem Webbrowser auf Desktop/Mac/Android/iOS oder als mobile App (Android/iOS) ausgeführt wird.
Ich habe versucht, UserAgent Sniffing, aber diese Regex-Technik schlägt vor allem bei der Ausführung des Codes in mobilen Browsern. Im Folgenden ist der Code, den ich verwenden OS und Version des Geräts zu identifizieren:
getOSAndVersion: function() {
var that = this;
var userOS; // will either be iOS, Android or unknown
var userOSver; // this is a string, used to denote OS version
var ua = navigator.userAgent;
var uaindex;
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(ua)) {
window.deviceType = "Mobile";
} else {
window.deviceType = "Web";
}
// determine OS
if (ua.match(/iPad/i) || ua.match(/iPhone/i)) {
userOS = 'iOS';
uaindex = ua.indexOf('OS ');
}
else if (ua.match(/Android/i)) {
userOS = 'Android';
uaindex = ua.indexOf('Android ');
}
else {
userOS = 'unknown';
}
// determine version
if (userOS === 'iOS' && uaindex > -1) {
userOSver = ua.substr(uaindex + 3, 3).replace('_', '.');
}
else if (userOS === 'Android' && uaindex > -1) {
userOSver = ua.substr(uaindex + 8, 3);
}
else {
userOSver = 'unknown';
}
return { osVersion: userOSver, os: userOS, deviceType: window.deviceType };
}
Gibt es eine andere Technik, die ich zuverlässig verwenden kann, um festzustellen, wo mein Code ausgeführt wird?
P.S. : Ich bin abgeneigt, jedes andere Cordova/JS-Plugin zu verwenden, um es zu identifizieren, aber immer noch zur Diskussion offen.
gute Idee ... Lemme versuchen und zurück zu Ihnen –
@AnujBatwe diese Lösung funktioniert, ich habe es versucht – KOTIOS
@MyMasterPiece Dank viel. Arbeitete großartig in Android. kannst du bestätigen, ob das in iOS funktioniert? –