簡體   English   中英

即使在設備上也未定義cordova

[英]cordova not defined even on device

我正在嘗試使用自定義插件,但即使沒有這個自定義插件,當我嘗試使用 cordova.plugins 時,它也會在瀏覽器、模擬器和真實設備中引發此錯誤。

在此處輸入圖片說明 這是代碼 home.ts

import {Component} from '@angular/core';
import {NavController, Platform} from 'ionic-angular';
declare var cordova:any;
@Component({
    selector: 'page-home',
    templateUrl: 'home.html'
})

export class HomePage {
    constructor(public navCtrl: NavController, public platform: Platform) {
        platform.ready().then(() => {this.test();});
    }
    test() {
        console.log('platform is ready..');alert(typeof cordova);
    }
}

離子信息:

cli 包:(/usr/local/lib/node_modules)

@ionic/cli-utils  : 1.19.1
ionic (Ionic CLI) : 3.19.1

全局包:

cordova (Cordova CLI) : 8.0.0 

本地包:

@ionic/app-scripts : 3.1.8
Cordova Platforms  : android 7.0.0 browser 5.0.3
Ionic Framework    : ionic-angular 3.9.2

系統:

Node  : v8.9.4
npm   : 5.6.0 
OS    : macOS High Sierra
Xcode : Xcode 9.2 Build version 9C40b 

環境變量:

ANDROID_HOME : /usr/local/share/android-sdk

雜項:

backend : legacy

確保在 index.html 中添加了cordova.js

經過大量研究,我找到了解決方案。

livereload 插件無法在開發過程中提供 cordova.js 文件並提供模擬 cordova 文件。

要解決此問題,請打開 node_modules/@ionic/app-scripts/dist/dev-server/serve-config.js

並替換

exports.ANDROID_PLATFORM_PATH = path.join('platforms', 'android', 'assets', 'www');

exports.ANDROID_PLATFORM_PATH = path.join('platforms', 'android', 'app', 'src', 'main', 'assets', 'www');

並加載了cordova,您可以在您的應用程序中使用自定義插件代碼。

希望這會幫助其他面臨同樣問題的人。

錯誤意味着您的 Cordova 路徑無效,

我的建議是卸載所有 Cordova 版本並重新安裝並僅使用那個 1,因為我遇到了類似的問題。

就我而言,問題是因為我從以下位置搬遷而來的:

ionic cordova build android

ionic build
cordova build android

一旦我回到 ionic cordova build android ,cordova var 又被定義了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM