2017-11-02 5 views
2

브라우저에서 Ionic v3.14.0 하이브리드 앱을 실행하려고하면 "Cordova is undefined"라는 런타임 오류가 발생합니다. 나는 this 게시물의 답변을 다음과 아래이오니아 2 런타임 오류 : 코르도바가 정의되지 않았습니다.

ionic cordova platform add browser 
ionic cordova run browser 

첫 번째 명령은 위의 내 프로젝트에 Platforms/browser과 그 아래 폴더 구조를 추가하고 내가 Platforms/browser/www에서 cordova.js을 찾을 수 있습니다 명령 실행. 그러나 위의 두 번째 명령을 실행하면 빈 크롬 브라우저 인스턴스가 열리 며 (내 기본값은 IE 임에도 불구하고) 앱을 표시하지 않고 빈 상태로 유지됩니다. 아래는 터미널에서 스택 추적입니다. 이상입니다에서 데이터 service.ts

import { Injectable } from '@angular/core'; 
import { Http, Response } from '@angular/http'; 
import 'rxjs/add/operator/map'; 

declare let cordova:any; 

/* 
    Generated class for the DataServiceProvider provider. 

    See https://angular.io/guide/dependency-injection for more info on providers 
    and Angular DI. 
*/ 
@Injectable() 
export class DataServiceProvider { 
    indexSpecs:any[]; 
    soupName = "menuItems"; 

    constructor(public http: Http) { 
    console.log('Hello DataServiceProvider Provider'); 
    } 

    getMainMenu(){ 
    return this.http.get('assets/data/mainmenu.json') 
    .map((response:Response)=>response.json().Categories); 
    } 

    getMainMenuItems() { 
    this.registerSmartStoreSoup(); 
    } 

    registerSmartStoreSoup() { 
    this.indexSpecs = [{path:"Name",type:"string"},{path:"Id",type:"string"}]; 
    cordova.require("com.salesforce.plugin.smartstore").registerSoup(this.soupName,this.indexSpecs,this.successCallback,this.errorCallback); 
    } 

    successCallback() { 
    console.log("Soup "+this.soupName+" Created Successfully"); 
    } 

    errorCallback(err) { 
    console.log("Error Creating "+this.soupName+":"+err) 
    } 

} 

getMainMenuItems() :

PS C:\Data\Per\Biz\Ionic\MyApp> ionic cordova run browser 
Running app-scripts build: --platform browser --target cordova 
[00:47:27] build dev started ... 
[00:47:27] clean started ... 
[00:47:27] clean finished in 12 ms 
[00:47:27] copy started ... 
[00:47:27] deeplinks started ... 
[00:47:28] deeplinks finished in 113 ms 
[00:47:28] transpile started ... 
[00:47:31] transpile finished in 3.71 s 
[00:47:31] preprocess started ... 
[00:47:31] preprocess finished in 1 ms 
[00:47:31] webpack started ... 
[00:47:32] copy finished in 4.39 s 
[00:47:41] webpack finished in 9.49 s 
[00:47:41] sass started ... 
[00:47:42] sass finished in 1.40 s 
[00:47:42] postprocess started ... 
[00:47:42] postprocess finished in 16 ms 
[00:47:42] lint started ... 
[00:47:42] build dev finished in 15.21 s 
> cordova run browser 
Error loading cordova-browser 

Running command: cmd "/s /c "C:\Data\Per\Biz\Ionic\MyApp\platforms\browser\cordova\build.bat"" 

Cleaning Browser project 
[00:47:46] lint finished in 4.18 s 
Running command: cmd "/s /c "C:\Data\Per\Biz\Ionic\MyApp\platforms\browser\cordova\run.bat --nobuild"" 
Static file server running @ http://localhost:8000/index.html 
CTRL + C to shut down 
200 /index.html (gzip) 
200 /cordova.js (gzip) 
200 /build/main.js (gzip) 
200 /build/polyfills.js (gzip) 
200 /build/main.css (gzip) 
200 /cordova_plugins.js (gzip) 
200 /plugins/cordova-plugin-device/www/device.js (gzip) 
200 /plugins/cordova-plugin-device/src/browser/DeviceProxy.js (gzip) 
200 /plugins/com.salesforce/www/com.salesforce.plugin.oauth.js (gzip) 
200 /plugins/com.salesforce/www/com.salesforce.plugin.network.js (gzip) 
200 /plugins/com.salesforce/www/com.salesforce.plugin.sdkinfo.js (gzip) 
200 /plugins/com.salesforce/www/com.salesforce.plugin.smartstore.js (gzip) 
200 /plugins/com.salesforce/www/com.salesforce.plugin.smartstore.client.js (gzip) 
200 /plugins/com.salesforce/www/com.salesforce.plugin.sfaccountmanager.js (gzip) 
200 /plugins/com.salesforce/www/com.salesforce.plugin.smartsync.js (gzip) 
200 /plugins/com.salesforce/www/com.salesforce.util.bootstrap.js (gzip) 
200 /plugins/com.salesforce/www/com.salesforce.util.event.js (gzip) 
200 /plugins/ionic-plugin-keyboard/www/browser/keyboard.js 
200 /plugins/com.salesforce/www/com.salesforce.util.exec.js (gzip) 
200 /plugins/com.salesforce/www/com.salesforce.util.logger.js (gzip) 
200 /plugins/com.salesforce/www/com.salesforce.util.promiser.js (gzip) 
200 /plugins/com.salesforce/www/com.salesforce.util.push.js (gzip) 
200 /plugins/cordova-plugin-splashscreen/www/splashscreen.js (gzip) 
200 /plugins/cordova-plugin-splashscreen/src/browser/SplashScreenProxy.js (gzip) 
200 /config.xml (gzip) 
404 /screen 
200 /build/vendor.js (gzip) 
200 /assets/icon/favicon.ico (gzip) 

나는 아래

내가 코르도바를 선언 내 TS 파일입니다 index.html을에 <script src="cordova.js"></script>을 포함했다 의 생성자에서 호출 됨 app.component.ts

constructor(public platform: Platform, public statusBar: StatusBar, public splashScreen: SplashScreen, public dataService: DataServiceProvider) { 
    this.initializeApp(); 

    this.dataService.getMainMenuItems(); 

위의 스택 추적에서 출력이 "Error loading cordova-browser" 인 것 같습니다. 그러나 여기에 문제가 확실하지 않습니다. 누군가 제발 나를 도울 수 있습니까?

+0

브라우저에서 응용 프로그램을 실행 하시겠습니까? ionic serve 명령을 시도하십시오. –

+0

@PrithiviRaj : 답변 해 주셔서 감사합니다. 'ionic serve'로 실행하려고하면'Runtime Error : '코드바가 정의되지 않았습니다.'라는 메시지가 나타납니다. – Nat

+0

Cordova 6.5.0으로 업그레이드하여 스택 추적에서 "cordova-browser로드 오류"문제를 해결했습니다. 그러나,'ionic cordova run browser'를 시도 할 때 여전히 Chrome에서 빈 페이지가 표시됩니다 – Nat

답변

0

당신이 추천하는 링크는 이온 1을 사용하고 있습니다. 아래 단계를 시도하십시오.

  1. 삭제 노드 모듈 폴더와 npm install -g [email protected]
  2. 실행 ionic serve를 실행 직접 브라우저에서 실행합니다. 당신이 장치 npm install -g cordova

에 대한 실행하려면

  • 는 코르도바를 설치 브라우저를 지원하지 않음 official documentation for commands

  • +0

    귀하의 회신에 다시 한번 감사드립니다. 나는 여전히''ionic serve -l'로 실행되는''cordova ''가 정의되지 않았다. 나는 최신이라고 믿는 이온 3.14.0을 달리고있다. – Nat

    +0

    1npm install -g ionic @ latest' 후에 Project Dependencies를 설치해야합니까? – Nat

    +0

    예 이온 버전 업그레이드를 업데이트 한 후 프로젝트 종속성을 업데이트하십시오. –

    0

    com.salesforce.plugin 을 참조하시기 바랍니다. 모바일 플랫폼 (예 : Android 및 iOS) 만 지원합니다.

    +0

    답장을 보내 주셔서 감사합니다. 브라우저 용으로 제작할 필요가 없습니다. 난 단지 이오스와 안드로이드 용으로 만들 필요가있다. 그러나 나는'ionic serve -l'을 사용하여 앱 컨텍스트에서 변경 사항을 미리 봅니다. 그러나'cordova.require'를 추가 한 후에 'cordova'가 정의되지 않은 오류가 발생합니다. 그래서 나는 플랫폼을 브라우저로 추가하는 것이 좋다고 생각했다. 내가이 경우에 원하는 것은 앱의 룩앤필 (look and feel) 내의 브라우저에서 앱을 미리 보는 것입니다. 'ionic serve -l'을 사용해야한다고 생각하지만 'cordova'에 의해 차단되는 것은 정의되지 않은 오류입니다. 이 문제를 해결할 수 있습니까? – Nat

    +0

    UI를 미리보고 싶으면 "cordova undefined error"페이지에서 오른쪽 상단에 "Close"옵션이 있습니다. 그러면 오류 대화 상자가 닫히고 UI가 다시 표시됩니다. 희망이 도움이! –

    +0

    답장을 보내 주셔서 감사합니다. Salesforce와 관련된 기능을 테스트해야합니다. 필자의 연구 결과에 따르면 'ionic serve -l'은 코 도바를 지원하지 않기 때문에 더 이상 도움이되지 않습니다. 그래서 안드로이드 에뮬레이터부터 시작했습니다. emulator : ERROR : x86 에뮬레이션은 현재 하드웨어 가속이 필요합니다! Intel HAXM이 올바르게 설치되어 사용 가능한지 확인하십시오. CPU 가속 상태 :이 컴퓨터에는 HAXM이 설치되어 있지 않습니다. 안드로이드 SDK 관리자는'인텔 x86 에뮬레이터 가속기 (HAXM 설치 프로그램) 6.2.1 윈도우와 호환되지 않습니다 '라고 말합니다. 이견있는 사람? – Nat