app.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. (function () {
  2. angular.module('app', ['ionic', 'app.controllers', 'app.services', 'app.filters', 'app.directives'])
  3. .config(["$ionicConfigProvider", function ($ionicConfigProvider) {
  4. //ionic全局配置
  5. $ionicConfigProvider.views.maxCache(10);
  6. // $ionicConfigProvider.views.swipeBackEnabled(false);
  7. $ionicConfigProvider.platform.android.tabs.position('bottom');
  8. $ionicConfigProvider.platform.android.navBar.alignTitle("center");
  9. $ionicConfigProvider.backButton.text('返回');
  10. $ionicConfigProvider.form.checkbox("circle");
  11. // $ionicConfigProvider.templates.maxPrefetch(0);
  12. }])
  13. .config(["$httpProvider", function ($httpProvider) {
  14. var token = window.localStorage['token'];
  15. if (token) {
  16. $httpProvider.defaults.headers.common['Authorization'] = 'Bearer ' + token;
  17. }
  18. $httpProvider.interceptors.push('authHttpInterceptor');
  19. }])
  20. .run(["$ionicPlatform", "msg", "$rootScope", "$timeout", "$http", "userService", "$state", "$ionicLoading","jpushService",
  21. function ($ionicPlatform, msg, $rootScope, $timeout, $http, userService, $state, $ionicLoading, jpushService) {
  22. $ionicPlatform.registerBackButtonAction(function (e) {
  23. if ($rootScope.backButtonPressedOnceToExit) {
  24. ionic.Platform.exitApp();
  25. $rootScope.$destroy()
  26. } else {
  27. $rootScope.backButtonPressedOnceToExit = true;
  28. $ionicLoading.show({ template: '再按一次退出系统', duration: 500 });
  29. $timeout(function () {
  30. $rootScope.backButtonPressedOnceToExit = false
  31. }, 2000)
  32. }
  33. $ionicPlatform.preventDefault();
  34. $ionicPlatform.stopPropagation();
  35. return false
  36. }, 101);
  37. // userService.isLogin().then(null, function (error) {
  38. // console.log(JSON.stringify(error));
  39. // localStorage.removeItem('user');
  40. // localStorage.removeItem('token');
  41. // $http.defaults.headers.common["Authorization"] = undefined;
  42. // $state.go('login');
  43. // });
  44. window.appIsOpen = false;
  45. $ionicPlatform.on('pause',function () {
  46. window.appIsOpen = false;
  47. console.log('pause window.appIsOpen:'+window.appIsOpen);
  48. });
  49. $ionicPlatform.ready(function () {
  50. if (window.cordova && cordova.platformId === 'ios' && window.cordova.plugins && window.cordova.plugins.Keyboard) {
  51. cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
  52. cordova.plugins.Keyboard.disableScroll(true);
  53. }
  54. if (window.StatusBar) {
  55. StatusBar.styleLightContent();
  56. }
  57. console.log('window.appIsOpen:'+window.appIsOpen);
  58. var openNotificationInAndroid = function(obj){
  59. console.log("openNotificationInAndroid是" +JSON.stringify(obj));
  60. // console.log(obj.extras['cn.jpush.android.EXTRA'].id+obj.extras['cn.jpush.android.EXTRA'].type+window.appIsOpen);
  61. // if(!window.appIsOpen){
  62. var id = obj.extras['cn.jpush.android.EXTRA'].id;
  63. var type = obj.extras['cn.jpush.android.EXTRA'].type;
  64. if(type == 1){
  65. $state.go('app.home_dreamdetail',{id: id, type: 1});
  66. }
  67. else if(type == 2){
  68. $state.go('app.home_dreamdetail',{id: id, type: 2});
  69. }
  70. else if(type == 3){
  71. $state.go('app.letterDetail');
  72. }
  73. else if(type == 4){
  74. $state.go('app.home_dreamdetail',{id: id, type: 3});
  75. }
  76. // }
  77. };
  78. var receiveNotification = function (event) {
  79. // $rootScope.$emit('msg-new', { msg: '有新消息' });
  80. window.appIsOpen = true;
  81. console.log('receiveNotification window.appIsOpen:'+window.appIsOpen);
  82. // alert("receiveMessageIniOSCallback是" + +JSON.stringify(event));
  83. };
  84. var openNotification = function (obj) {
  85. window.plugins.jPushPlugin.setBadge(0);
  86. window.plugins.jPushPlugin.resetBadge();
  87. window.plugins.jPushPlugin.setApplicationIconBadgeNumber(0);
  88. // alert("openNotification是" +JSON.stringify(res));
  89. console.log("openNotification是" +JSON.stringify(obj)+'window.appIsOpen:'+window.appIsOpen);
  90. if(!window.appIsOpen){
  91. var id = obj.extras.id;
  92. var type = obj.extras.type;
  93. if(type == 1){
  94. $state.go('app.message_sys',{id: id, type: 1});
  95. }
  96. else if(type == 2){
  97. $state.go('app.home_dreamdetail',{id: id, type: 2});
  98. }
  99. else if(type == 3){
  100. $state.go('app.letterDetail');
  101. }
  102. else if(type == 4){
  103. $state.go('app.home_dreamdetail',{id: id, type: 3});
  104. }
  105. }
  106. };
  107. var setTagsWithAliasCallback = function (event) {
  108. window.alert('result code:' + event.resultCode + ' tags:' + event.tags + ' alias:' + event.alias);
  109. };
  110. if (window.cordova) {
  111. window.plugins.jPushPlugin.setBadge(0);
  112. jpushService.init({
  113. stac: setTagsWithAliasCallback,
  114. oniac: openNotificationInAndroid,
  115. notify: receiveNotification,
  116. openNotification: openNotification
  117. });
  118. //启动极光推送服务
  119. var onGetRegistrationID = function (registrationID) {
  120. // alert("RegistrationID是" + registrationID);
  121. try {
  122. if (registrationID.length == 0) {
  123. var t1 = window.setTimeout(getRegistrationID, 1000);
  124. } else {
  125. localStorage.setItem('jpush', registrationID);
  126. }
  127. } catch (exception) {
  128. // alert("onGetRegistrationID err:" + JSON.stringify(exception));
  129. }
  130. };
  131. var getRegistrationID = function () {
  132. window.plugins.jPushPlugin.getRegistrationID(onGetRegistrationID);
  133. };
  134. // alert("onGetRegistrationID err:" );
  135. getRegistrationID();
  136. }
  137. });
  138. }]);
  139. angular.module("app.controllers", []);
  140. angular.module("app.services", []);
  141. angular.module("app.filters", []);
  142. angular.module("app.directives", []);
  143. })();