Ricerca…


Osservazioni

Il test delle funzionalità del dispositivo nativo come fotocamera, vibrazione e altri, molti dei quali si trovano nella documentazione di Ionic Native , non può essere fatto nel browser. Questo è un limite intrinseco del fatto che Cordova, la piattaforma su cui Ionic dipende da essere in grado di accedere alle API native Android, iOS e Windows Mobile di un dispositivo, non può essere eseguita sul browser.

Uno può aggirare questo problema prendendo in giro la funzionalità del plugin nativo.

Esempio

Ecco un esempio su come prendere in giro il plugin Camera :

Vai avanti e crea una cartella opzionale nella cartella principale del progetto.

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

Apri camera-mock.ts e copia incolla il seguente codice:

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

Quindi apri src/app.module.ts e importa la classe di simulazione "

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

Quindi aggiungilo all'array dei provider di moduli:

@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 {}

Ora puoi usarlo in qualsiasi componente dopo averlo importato.

Test in un browser

Utilizzare ionic serve per avviare un server di sviluppo locale per lo sviluppo e il test delle app. Questo è utile sia per i test del browser desktop, sia per testare all'interno di un browser del dispositivo che è connesso alla stessa rete. Inoltre, questo comando avvia LiveReload che viene utilizzato per monitorare le modifiche nel file system. Non appena si salva un file, il browser viene aggiornato automaticamente. Dai un'occhiata ai documenti di Sass se vuoi anche avere un ionic serve guardare i file Sass del progetto.

$ ionic serve [options]

Per browser Chrome puoi controllare i dispositivi (AVD o cellulari), digitare il comando seguente nella barra degli indirizzi del browser Chrome.

chrome://inspect/#devices  

LiveReload

Per impostazione predefinita, LiveReload controllerà le modifiche nella tua www/ directory, escluso www/lib/ . Per cambiare questo, puoi specificare una proprietà watchPatterns nel file ionic.project che si trova nella root del progetto per guardare (o non guardare) le modifiche specifiche.

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

Per un riferimento sulla sintassi del pattern glob, controlla i pattern globbing sul sito web di Grunt.

Nota:

$ ionic setup sass

aggiungerà watchPatterns correttamente con i valori predefiniti al file ionic.project che è possibile modificare, oltre alla proprietà gulpStartupTasks come descritto nella documentazione di Sass .

Ionic Lab

Ionic Lab http://ionicframework.com/img/blog/lab.png

Ionic Lab è una funzione al servizio di ionic serve che semplifica il test della tua app in una cornice del telefono e con piattaforme iOS e Android affiancate. Per usarlo, basta correre

$ ionic serve --lab

Leggi l' annuncio di rilascio completo per tutti i dettagli!

Specifica di un indirizzo IP da utilizzare

Supponi di voler specificare a quale indirizzo si connetterà il tuo browser, ad esempio per testare o utenti esterni. Specificare l'indirizzo con l'argomento --address .

$ ionic serve --address 68.54.96.105

Proxy di servizio

Il comando serve può aggiungere alcuni proxy al server http. Questi proxy sono utili se stai sviluppando nel browser e devi effettuare chiamate a un'API esterna. Con questa funzione è possibile inoltrare la richiesta al API esterno tramite il server http ionico, impedendo che l' No 'Access-Control-Allow-Origin' header is present on the requested resource sull'errore di No 'Access-Control-Allow-Origin' header is present on the requested resource .

Nel file ionic.project è possibile aggiungere una proprietà con una serie di proxy che si desidera aggiungere. I proxy sono oggetti con due proprietà:

  • path : stringa che verrà confrontata con l'inizio dell'URL della richiesta in entrata.
  • proxyUrl : una stringa con l'url di dove deve andare la richiesta proxy.
{
  "name": "appname",
  "email": "",
  "app_id": "",
  "proxies": [
    {
      "path": "/v1",
      "proxyUrl": "https://api.instagram.com/v1"
    }
  ]
}

Utilizzando la configurazione di cui sopra, ora puoi effettuare richieste al tuo server locale su http://localhost:8100/v1 per fare in modo che le richieste proxy vengano inviate a https://api.instagram.com/v1

Per esempio:

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;
  })

})

Vedi anche questo succo per ulteriore aiuto.

Flag / opzioni della riga di comando

[--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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow