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){ //20210428 修正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 = '/mms01_user_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('/mms03_system_home'); } else { $urlRouterProvider.otherwise(default_program); } }]).run(['$urlRouter', '$rootScope', '$state', 'config', function($urlRouter, $rootScope, $state, config){ $urlRouter.sync(); $urlRouter.listen(); }]); });