/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ var platform_type = ""; var platform_theme = "auto"; var nw_tray = null; var openBrowser = function (url) { } var getLocation = function (success, error) { if ("geolocation" in navigator) { navigator.geolocation.getCurrentPosition(function (position) { success(position); }, function (err) { if (typeof error == "function") { error(err.message); } }, { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }); } else { if (typeof error == "function") { error("Location is unavailable."); } } } var watchLocation = function (success, error) { if ("geolocation" in navigator) { navigator.geolocation.watchPosition(function (position) { success(position); }, function (err) { if (typeof error == "function") { error(err.message); } }, { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }); } else { if (typeof error == "function") { error("Location is unavailable."); } } } function initCordova() { platform_type = "cordova"; try { eval('"use strict"; class foo {}'); } catch (e) { alert("Your device's webview is out of date and won't work with this app. Please update it."); } // Handle back button to close things document.addEventListener("backbutton", function (event) { router.navigate("/home"); }, false); document.addEventListener("deviceready", function () { if (cordova.platformId == 'android') { StatusBar.backgroundColorByHexString("#F57C00"); StatusBar.styleLightContent(); } }, false); openBrowser = function (url) { cordova.InAppBrowser.open(url, '_blank', 'location=yes'); } } function initNW() { platform_type = "nw"; platform_theme = "aurora"; openBrowser = function (url) { nw.Window.open(url, { id: url }, function (browserwin) { // Add menubar so the user can navigate around if they click a link var browsermenu = new nw.Menu({type: 'menubar'}); browsermenu.append(new nw.MenuItem({ label: "Back", click: function () { browserwin.window.history.back(); } })); browsermenu.append(new nw.MenuItem({ label: "Forward", click: function () { browserwin.window.history.forward(); } })); browsermenu.append(new nw.MenuItem({ label: "Home", click: function () { browserwin.window.location.href = url; } })); browserwin.menu = browsermenu; }); } } function initBrowser() { platform_type = "browser"; platform_theme = "md"; openBrowser = function (url) { window.open(url); } } function initPlatform() { if (typeof cordova !== 'undefined') { initCordova(); } else if (typeof nw !== 'undefined') { initNW(); } else { initBrowser(); } }