수색…


비고

카메라, 진동 및 기타와 같은 기본 장치 기능 테스트는 Ionic Native 의 설명서에 나와 있으며 대부분 브라우저에서 수행 할 수 없습니다. 이것은 Ionic이 기기의 기본 Android, iOS 및 Windows Mobile API에 액세스 할 수 있도록 의존하는 플랫폼 인 Cordova가 브라우저에서 실행될 수 없다는 사실에 내재 된 한계입니다.

네이티브 플러그인의 기능을 조롱함으로써이 문제를 해결할 수 있습니다.

다음은 Camera Plugin을 조롱하는 방법의 예입니다.

프로젝트 루트 폴더에 옵션 폴더를 만듭니다.

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 를 사용하여 응용 프로그램 개발 및 테스트 용 로컬 개발 서버를 시작하십시오. 이것은 데스크톱 브라우저 테스트와 동일한 네트워크에 연결된 장치 브라우저 내에서 테스트하는 데 유용합니다. 또한이 명령은 파일 시스템의 변경 사항을 모니터링하는 데 사용되는 LiveReload를 시작합니다. 파일을 저장하면 브라우저가 자동으로 새로 고쳐집니다. ionic serve 프로젝트의 Sass 파일을보고 싶다면 Sass docs를 보십시오.

$ ionic serve [options]

크롬 브라우저의 경우 장치 (AVD 또는 Mobiles)를 검사하고 Chrome 브라우저의 주소 표시 줄에 다음 명령을 입력하십시오.

chrome://inspect/#devices  

LiveReload

기본적으로 LiveReload은 당신의 변화를 볼 것이다 www/ 제외 디렉토리, www/lib/ . 이를 변경하려면 프로젝트 루트에있는 ionic.project 파일에서 watchPatterns 속성을 지정하여 특정 변경 사항을 보거나 보지 않습니다.

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

glob 패턴 구문에 대한 참고 자료는 Grunt 웹 사이트에서 globbing 패턴 을 확인하십시오.

노트 :

$ ionic setup sass

추가합니다 watchPatterns 사용자에 대한 기본 값으로 때에 프로퍼티를 ionic.project 받는 사람뿐만 아니라, 당신이 다음 편집 할 수있는 파일 gulpStartupTasks 에 설명 재산 말대꾸 문서 .

이오닉 연구소

이오닉 연구소 http://ionicframework.com/img/blog/lab.png

Ionic Lab은 전화 프레임에서 iOS와 Android 플랫폼을 함께 사용하여 앱을 손쉽게 테스트 할 수있게 해주는 ionic serve 의 기능입니다. 그것을 사용하려면, 그냥 실행하십시오.

$ ionic serve --lab

모든 세부 사항에 대한 전체 릴리스 발표문 을 읽어보십시오!

사용할 IP 주소 지정

테스트 또는 외부 사용자를 위해 브라우저가 연결할 주소를 지정하려고한다고 가정 해보십시오. --address 인수로 주소를 지정하십시오.

$ ionic serve --address 68.54.96.105

서비스 프록시

serve 명령은 http 서버에 일부 프록시를 추가 할 수 있습니다. 이러한 프록시는 브라우저에서 개발 중이며 외부 API를 호출해야하는 경우에 유용합니다. 이 기능을 사용 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 http 서버를 통해 외부 API에 프록시 요청을 보낼 수 있습니다.

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 대한 요청을 프록시 아웃 할 수 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