Поиск…


замечания

Тестирование встроенных функций устройства, таких как Camera, Vibration и другие, многие из которых находятся в документации Ionic Native , не могут быть выполнены в браузере. Это неотъемлемое ограничение того факта, что Cordova, платформа, на которой Ionic зависит, чтобы иметь возможность доступа к родным Android, iOS и Windows Mobile API устройства, не может работать в браузере.

Можно обойти эту проблему, издеваясь над функциональностью собственного плагина.

пример

Вот пример того, как издеваться над плагином Camera :

Идем дальше и создаем дополнительную папку в корневой папке проекта.

cd src
mkdir mocks 
cd mocks 
touch camera-mock.ts 

Откройте camera-mock.ts и скопируйте вставьте следующий код:

export class CameraMock {
    getPicture(params) {
        return new Promise((resolve, reject) => {
            resolve("BASE_64_IMAGE_DATA");
        });
    }
}

Затем откройте src/app.module.ts и импортируйте класс mock "

import { CameraMock } from "../mocks/camera-mock";

Затем добавьте его в массив поставщиков модулей:

@NgModule({
declarations: [
    MyApp,
    HomePage
],
imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
    MyApp,
    HomePage
],
providers: [
    StatusBar,
    SplashScreen,
    CameraMock,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
]
})
export class AppModule {}

Теперь вы можете использовать его в любом компоненте после его импорта.

Тестирование в браузере

Использование ionic serve для запуска локального сервера разработки для приложения dev и тестирования. Это полезно как для тестирования настольных браузеров, так и для проверки в браузере устройства, подключенного к той же сети. Кроме того, эта команда запускает LiveReload, которая используется для мониторинга изменений в файловой системе. Как только вы сохраните файл, браузер автоматически обновится. Взгляните на документы Sass, если вы также хотите, чтобы ionic serve просматривала файлы Sass проекта.

$ ionic serve [options]

Для браузера Chrome вы можете проверить устройства (AVD или Mobiles), введите следующую команду в адресной строке браузера Chrome.

chrome://inspect/#devices  

LiveReload

По умолчанию LiveReload будет следить за изменениями в вашем www/ каталоге, за исключением www/lib/ . Чтобы изменить это, вы можете указать watchPatterns свойство в ionic.project файл , расположенный в корневом каталоге проекта , чтобы посмотреть (или не смотреть) для конкретных изменений.

{
  "name": "myApp",
  "app_id": "",
  "watchPatterns": [
    "www/js/*",
    "!www/css/**/*"
  ]
}

Для справки о синтаксисе шаблонов glob проверьте шаблоны глобусов на веб-сайте Grunt.

Замечания:

$ ionic setup sass

добавит watchPatterns со значениями по умолчанию в ваш файл ionic.project который вы затем сможете редактировать, в дополнение к свойству gulpStartupTasks как описано в документации Sass .

Ионная лаборатория

Ионная лаборатория http://ionicframework.com/img/blog/lab.png

Ionic Lab - это функция поверх ionic serve которая позволяет легко тестировать ваше приложение в раме телефона, а также на платформах iOS и Android бок о бок. Чтобы использовать его, просто запустите

$ ionic serve --lab

Прочтите полное объявление о выпуске для всех деталей!

Указание IP-адреса для использования

Предположим, вы хотите указать, к какому адресу будет подключен ваш браузер, скажем, для тестирования или внешним пользователям. Укажите адрес с аргументом --address .

$ ionic serve --address 68.54.96.105

Сервисные прокси

Команда serve может добавлять некоторые прокси-серверы на http-сервер. Эти прокси-серверы полезны, если вы работаете в браузере, и вам нужно совершать вызовы во внешний API. С помощью этой функции вы можете запросить прокси на внешний api через ионный http-сервер, предотвращая появление No 'Access-Control-Allow-Origin' header is present on the requested resource ошибке No 'Access-Control-Allow-Origin' header is present on the requested resource .

В файле ionic.project вы можете добавить свойство с массивом прокси, который вы хотите добавить. Прокси - объекты с двумя свойствами:

  • path : строка, которая будет сопоставлена ​​с началом URL-адреса входящего запроса.
  • proxyUrl : строка с URL-адресом, куда должен идти прокси-запрос.
{
  "name": "appname",
  "email": "",
  "app_id": "",
  "proxies": [
    {
      "path": "/v1",
      "proxyUrl": "https://api.instagram.com/v1"
    }
  ]
}

Используя приведенную выше конфигурацию, вы можете теперь отправлять запросы на ваш локальный сервер по адресу http://localhost:8100/v1 чтобы запросить прокси-сервер на https://api.instagram.com/v1

Например:

angular.module('starter.controllers', [])
.constant('InstagramApiUrl', '')
// .constant('InstagramApiUrl','https://api.instagram.com')
//In production, make this the real URL

.controller('FeedCtrl', function($scope, $http, InstagramApiUrl) {

  $scope.feed = null;

  $http.get(InstagramApiUrl + '/v1/media/search?client_id=1&lat=48&lng=2.294351').then(function(data) {
    console.log('data ' , data)
    $scope.feed = data;
  })

})

См. Также этот пояс для получения дополнительной помощи.

Флаги / параметры командной строки

[--consolelogs|-c] ......  Print app console logs to Ionic CLI
[--serverlogs|-s] .......  Print dev server logs to Ionic CLI
[--port|-p] .............  Dev server HTTP port (8100 default)
[--livereload-port|-i] ..  Live Reload port (35729 default)
[--nobrowser|-b] ........  Disable launching a browser
[--nolivereload|-r] .....  Do not start live reload
[--noproxy|-x] ..........  Do not add proxies


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow