define(['app', 'angularAMD', 'fastClick', 'text!config/config.json'], function (app, angularAMD, FastClick, config) { 'use strict'; app.config(['$httpProvider', '$provide', '$translateProvider', '$touchProvider', 'config', function ($httpProvider, $provide, $translateProvider, $touchProvider, config) { //$httpProvider.defaults.useXDomain = true; //allow cross domain //$httpProvider. defaults.withCredentials = true; //allow cross domain Cookie try { //ionic config //$ionicConfigProvider.templates.maxPrefetch(0); //Get Config.json and menu.json $touchProvider.ngClickOverrideEnabled(true); if (typeof (Storage) !== 'undefined') { //載入設定 config.setting = angular.merge(config.setting, JSON.parse(localStorage.getItem(config.appName + '_setting'))); if (!config.setting.fullScreen) { config.setting.fullScreen = 'Y'; } if (!config.setting.virtualKeyboard) { config.setting.virtualKeyboard = 'N'; } //20201023 雋辰,新增WS設定 config.serverList = angular.merge(config.serverList, JSON.parse(localStorage.getItem(config.appName + '_serverList'))); //載入Server設定 config.server = angular.merge({}, config.serverList[config.setting.environment]);//取出預設的Server資訊 var LocalServerConfig = JSON.parse(localStorage.getItem(config.appName + '_server'));//取出本地端儲存的Server資訊 angular.merge(config.server, LocalServerConfig); if (config.server.name == '') { config.server.name = 'MES_Production_MESws_STD'; } if (config.server.eainame == '') { config.server.eainame = 'MES_Production_MESws_EAI'; } var login_string = localStorage.getItem(config.appName + '_login'); if (login_string) config.login = JSON.parse(login_string); if (window.cordova) { //20201223 雋辰,修正APK版初始版號被暫存值(空值)蓋掉 var storageVer = localStorage.getItem(config.appName + '_version'); if (storageVer && storageVer != '') config.appVersion = storageVer; } config.cache.platform = localStorage.getItem(config.appName + "_servicePlatform"); if (!config.cache.platform) { config.cache.platform = 'MES'; } } //Get App Infomation try { cordova.getAppVersion.getPackageName().then(function (packageName) { config.packageName = packageName; }); } catch (e) { } // Localization Config var localizationSettings = []; for (var index in config.module) { localizationSettings.push({ prefix: 'module/' + config.module[index] + '/localization/localization-', suffix: '.json' }); } $translateProvider.useStaticFilesLoader({ files: localizationSettings }); $translateProvider.preferredLanguage(config.setting.lang); FastClick.attach(document.body); try { //設定全螢幕 AndroidFullScreen.immersiveMode(function () { console.info('It worked!'); }, function (error) { alert(error); }); //綁定橫向螢幕 //screen.lockOrientation('landscape'); //關閉狀態列 StatusBar.hide(); //override Android返回鍵 document.addEventListener('backbutton', function onBackKeyDown(e) { e.preventDefault(); }, false); } catch (e) { }; try { //for ios 設定鍵盤出現時,畫面不可滑動 cordova.plugins.Keyboard.disableScroll(true); window.navigationbar.setUp(true); window.addEventListener('native.keyboardhide', function () { window.navigationbar.hide(); }); } catch (e) { } } catch (e) { console.log(e); } } ]).config(['$stateProvider', '$urlRouterProvider', 'config', function ($stateProvider, $urlRouterProvider, config) { // Don't sync the url till we're ready $urlRouterProvider.deferIntercept(); var login_string = localStorage.getItem('KMI_login'), default_program = '/login'; angular.forEach(config.program, function (value) { var state = angularAMD.route(value); if (state.default == true) { default_program = value.url; } $stateProvider.state(value.name, state); }); if (login_string) { $urlRouterProvider.otherwise('/home'); } else { $urlRouterProvider.otherwise(default_program); } }]).run(['$urlRouter', '$rootScope', '$state', 'config', function ($urlRouter, $rootScope, $state, config) { $urlRouter.sync(); $urlRouter.listen(); }]); });