我想为 Android 和 iOS 制作一个 ionic 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
- 重新安装科尔多瓦插件
- 导入 webdav 模块
require()
- 删除了我项目中所有不必要的页面
环境信息:
离子:
- 离子 CLI:4.1.2
- 离子框架:离子角 3.9.2
- @ionic/app-scripts:3.2.0
科尔多瓦:
- 科尔多瓦 CLI:8.1.1
- Cordova 平台:ios 4.5.5
- 科尔多瓦插件:
- 科尔多瓦插件离子键盘 2.1.3
- 科尔多瓦-插件-离子-webview 2.2.0
- 科尔多瓦插件设备
- 科尔多瓦插件启动画面
- 科尔多瓦状态栏
- 科尔多瓦白名单
系统:
- 节点JS:v8.12.0
- npm:6.4.1
- 操作系统:OS X El Capitan
- Xcode:Xcode 8.2.1 构建版本 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 等上发现了一些文章和问题。但这些变通方法对我不起作用。还评论一切都没有奏效。
也许有人有想法?