Ionic Cordova-未定义不是对象(self.fetch.bind)

时间:2018-10-19 11:14:14

标签: ios angular typescript cordova ionic-framework

我想为Android和iOS制作一个离子webdav应用程序。 因此,我安装了节点模块webdav并创建了一个新的登录页面。在我的login.ts中,我添加了以下模块:

import * as WebDAV from 'webdav';

@Component({
    selector: 'page-login',
    templateUrl: 'login.html'
})

export class LoginPage {

    cunstructor() {
        var webdav = WebDAV;  // On this code snippet the error appears
    }
}

当我尝试访问模块时,出现错误

undefined is not an object (self.fetch.bind)

以下是屏幕截图:undefined is not an object (self.fetch.bind)

此错误仅出现在iOS模拟器上,而不出现在Android上。 以下我已经尝试过:

  • 搜索了相同或相似的问题
  • 重新安装所有node_modules
  • 重新安装的cordova插件
  • 使用require()导入webdav模块
  • 删除了我项目中所有不必要的页面


环境信息:
离子性:

  • 离子CLI:4.1.2
  • 离子框架:离子角3.9.2
  • @ ionic / app-scripts:3.2.0

科尔多瓦:

  • Cordova CLI:8.1.1
  • Cordova平台:ios 4.5.5
  • Cordova插件:
    • cordova-plugin-ionic-keyboard 2.1.3
    • cordova-plugin-ionic-webview 2.2.0
    • cordova-plugin-device
    • cordova-plugin-splashscreen
    • cordova-statusbar
    • cordova-whitelist

系统:

  • NodeJS:v8.12.0
  • npm:6.4.1
  • OS:OS X El Capitan
  • Xcode:Xcode 8.2.1 Build版本8C1002

有人知道我该如何解决此错误?


编辑:
我发现问题出在node-fetch / browser.js:

"use strict";

module.exports = exports = self.fetch;

// Needed for TypeScript and Webpack
exports.default = self.fetch.bind(self);

exports.Headers = self.Headers;
exports.Request = self.Request;
exports.Response = self.Response;

我发现了一些关于ReactNative Repo等的文章和问题。 但是这些变通办法对我没有用。还评论一切无效。

也许有人有主意吗?

0 个答案:

没有答案