0.6.1 • Published 8 years ago

angular-mobile-core v0.6.1

Weekly downloads
9
License
-
Repository
-
Last release
8 years ago

angular-mobile-core

Bower NPM

Фундамент для мобильных приложений

Описание

Модуль для ~ AngularJS 1.4.x с набором необходимых библиотек для быстрого старта на стеке angular + cordova.

Включенные библиотеки

  • angular-cookies
  • angular-local-storage
  • angular-translate с опциями loader-static-files, storage-cookie, storage-local.
  • ngCordova с опциями appVersion, camera, googleAnalytics, imagePicker, push, toast.
  • underscore
  • cryptoJs(md5)
  • momentJS

Что также несет собой ядро

Сервис для конфигурирования приложения - $mobileConfig. Пример использования:

     angular
            .module('app')
            .config($mobileConfigProvider);
    
        /////////////////////////////////////////
    
    
        $mobileConfigProvider.$inject = ['$mobileConfigProvider'];
        function $mobileConfigProvider($mobileConfigProvider){
    
            // Пишем в объект конфигурации.
            $mobileConfigProvider.config = {
            
                // текущее окружение.
                environment: 'production',
    
                // количество миллисекунд ожидания ответа от сервера.
                connection_timeout: 20000,
    
                // запустит приложение с чистым local storage.
                cleanStart: false,
    
                // в этом объекте нужно перечислить все окружения у вашего приложения.
                environments: {
                    
                    // теперь будет доступно окружение со строкой 'development'
                    development: {
                        /* address, port и apiVersion необходимая информация для того, чтобы $server мог построить
                           правильный URL к вашему серверу. URL строится по схеме: address:port/apiVersion/<ваш URL>
                           например: http://192.168.1.2:8181/v1/users
                        */
                        address: 'http://192.168.1.2',
                        port: '8181',
                        apiVersion: 'v1'
                    },
                    
                    // теперь будет доступно окружение со строкой 'review'
                    review:{
                        address: 'http://my-api.com',
                        port: '80',
                        apiVersion: 'v2'
                    }
    
                },
                
                // Объект security, простой способ защиты сервера от потусторонних запросов.
                security: {
                
                    // secret - строка известная вам и серверу
                    secret: 'mySecretString',
                    
                    /* uniqueKey - строка или число, которое будет различным на разных устройствах. Cервер должен знать
                       что именно вы используете в качестве уникального ключа для того, чтобы сверить ваш секрет на 
                       подлинность. В данном случае мы используем uuid устройства.
                    */
                    uniqueKey: device.uuid
                    
                    /* Метод шифрования(для сервера): MD5( security.secret + '_secret_' + MD5( security.uniqueKey ) ) */
                },
                
                
                // Объект headers запишет все свое содержимое в каждый запрос к серверу
                headers: {
                    deviceUuid: device.uuid,
                    devicePlatform: device.platform,
                    deviceVersion: device.version,
                    deviceModel: device.model
                },
                
                // Объект push содержит настройки push уведомлений
                push: {
                
                        enabled: true,  // вкл/выкл push уведомлений
        
                        // Объект конфигурации, если не понятно, можно почитать в документации push plugin-а
                        config: {
                            android: {
                                senderID: 762963015605
                            },
                            wp8: {
                                channelName: device.uuid
                            },
                            ios:{
                                "badge": true,
                                "alert": true,
                                "sound": true
                            }
                        },
                        
                        // Функция обработчик пуш уведомлений
                        messageProvider: function(notification){
                            // объект notification содержит информацию о пуш уведомлении 
                            
                            // Вывести в консоль сообщение
                            console.log(notification.message);
                            
                        }
                    }
    
            }
    
        }

Сервис для удобного логирования приложения - $console.

    $console.instance('homeController'); // Поставит метку 'homeController' на каждое сообщение
    $console.instance('newPageController'); // Поставит метку 'newPageController' на каждое сообщение
    $console.backInstance(); // Вернет предыдущую метку 'homeController'.
    $console.clearInstance(): // Удалит всю историю меток и установит метку 'AppController'
    $console.info('Привет мир!'); // Красиво выведет сообщение 'Привет мир!' с пометкой INFO.
    $console.log('Привет мир!'); // Alias метода $console.info.
    $console.error('Нельзя делить на нуль'); // Выведет сообщение в консоль с пометкой ERROR.
    
    //Также можно добавлять информацию в заголовок сообщения, например в каком методе было вызвано данное сообщение:
    $console.info('Привет мир!', 'initialization()');

При наличии плагина cordova-plugin-app-version пишет текущую версию в headers.

При наличии плагина cordova-plugin-geolocation пишет текущую геолокацию в headers(longitude, latitude, accuracy)

Установка

  • Подключите файл build/angular-mobile-core.js перед вашими скриптами.
  • Затем подключите модуль в вашем приложении, примерно как показано ниже:
angular.module('app', ['mobile-core'])