Zoeken…


Opmerkingen

Het testen van native apparaatfuncties zoals Camera, Vibration en anderen, waarvan er veel te vinden zijn in de documentatie van Ionic Native , kan niet worden gedaan in de browser. Dit is een inherente beperking van het feit dat Cordova, het platform waarvan Ionic afhankelijk is om toegang te krijgen tot native Android-, iOS- en Windows Mobile API's van een apparaat, niet op de browser kan worden uitgevoerd.

Men kan dit probleem omzeilen door de functionaliteit van de native plug-in te bespotten.

Voorbeeld

Hier is een voorbeeld van hoe u de Camera plug-in kunt bespotten:

Ga je gang en maak een optionele map in de hoofdmap van je project.

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

Open camera-mock.ts en kopieer en plak de volgende code:

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

Open vervolgens src/app.module.ts en importeer de src/app.module.ts "

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

Voeg het vervolgens toe aan de array van moduleproviders:

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

Nu kunt u het in elk component gebruiken na het importeren.

Testen in een browser

Gebruik ionic serve om een lokale ontwikkelingsserver te starten voor app-ontwikkeling en testen. Dit is handig voor het testen van zowel de desktopbrowser als voor het testen in een apparaatbrowser die op hetzelfde netwerk is aangesloten. Bovendien start deze opdracht LiveReload die wordt gebruikt om wijzigingen in het bestandssysteem te controleren. Zodra u een bestand opslaat, wordt de browser automatisch vernieuwd. Bekijk de Sass-documenten als u ook wilt dat ionic serve de Sass-bestanden van het project bekijkt.

$ ionic serve [options]

Voor Chrome-browser kunt u apparaten (AVD of Mobiles) inspecteren, typ de volgende opdracht in de adresbalk van Chrome-browser.

chrome://inspect/#devices  

LiveReload

LiveReload let standaard op wijzigingen in uw www/ directory, exclusief www/lib/ . Om dit te wijzigen, kunt u een eigenschap watchPatterns opgeven in het bestand ionic.project in uw projectwortel om te kijken (of niet te kijken) voor specifieke wijzigingen.

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

Voor een referentie over de syntaxis van glob patronen, bekijk globpatronen op de Grunt-website.

Notitie:

$ ionic setup sass

zal een watchPatterns met de standaardwaarden aan uw ionic.project bestand toevoegen dat u vervolgens kunt bewerken, naast de eigenschap gulpStartupTasks zoals beschreven in de Sass-documentatie .

Ionic Lab

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

Ionic Lab is een functie bovenop ionic serve waarmee u uw app eenvoudig in een telefoonframe en met iOS- en Android-platforms naast elkaar kunt testen. Om het te gebruiken, voer je gewoon uit

$ ionic serve --lab

Lees de volledige release-aankondiging voor alle details!

Een te gebruiken IP-adres opgeven

Stel dat u wilt opgeven met welk adres uw browser verbinding maakt, bijvoorbeeld voor testen of externe gebruikers. Geef het adres op met het argument --address .

$ ionic serve --address 68.54.96.105

Service-volmachten

De opdracht serve kan enkele proxy's toevoegen aan de http-server. Deze proxy's zijn handig als u zich in de browser ontwikkelt en een externe API moet gebruiken. Met deze functie kunt u een proxyaanvraag indienen bij de externe API via de ionische http-server om te voorkomen dat de No 'Access-Control-Allow-Origin' header is present on the requested resource bronfout.

In het bestand ionic.project kunt u een eigenschap toevoegen met een reeks proxy's die u wilt toevoegen. De proxy's zijn object met twee eigenschappen:

  • path : tekenreeks die wordt vergeleken met het begin van de inkomende verzoek-URL.
  • proxyUrl : een tekenreeks met de URL van waar het proxy-verzoek moet komen.
{
  "name": "appname",
  "email": "",
  "app_id": "",
  "proxies": [
    {
      "path": "/v1",
      "proxyUrl": "https://api.instagram.com/v1"
    }
  ]
}

Met behulp van de bovenstaande configuratie kunt u nu verzoeken indienen bij uw lokale server op http://localhost:8100/v1 om proxy-outverzoeken te laten https://api.instagram.com/v1 bij https://api.instagram.com/v1

Bijvoorbeeld:

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

})

Zie ook deze samenvatting voor meer hulp.

Opdrachtregelvlaggen / opties

[--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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow