1

我正在尝试将ams-amplifyNativeScript集成,但我无法让它成功工作。

import { Component, OnInit } from "@angular/core";

require("nativescript-nodeify");

var Amplify = require("aws-amplify");

@Component({
    selector: "Home",
    moduleId: module.id,
    templateUrl: "./home.component.html"
})
export class HomeComponent implements OnInit {


    constructor() {
        // Use the component constructor to inject providers.
        Amplify.configure({
            Auth: {
            // REQUIRED - Amazon Cognito Identity Pool ID
                identityPoolId: 'xxxxx', 
            // REQUIRED - Amazon Cognito Region
                region: 'xxxx', 
            // OPTIONAL - Amazon Cognito User Pool ID
                userPoolId: 'xxxx',
            // OPTIONAL - Amazon Cognito Web Client ID
                userPoolWebClientId: 'xxxxx', 
            }
        });

    }

    ngOnInit(): void {

    }
}

但我收到一些“导航器未定义”错误。

JS:错误错误:未捕获(承诺):ReferenceError:导航器未定义JS:ReferenceError:导航器未定义JS:在standardBrowserEnv(file:///data/data/org.nativescript.awsamplify/files/app/tns_modules /axios/lib/helpers/isURLSameOrigin.js:11:39) JS:在对象。(file:///data/data/org.nativescript.awsamplify/files/app/tns_modules/axios/lib/helpers/isURLSameOrigin.js:60:5) JS: 在要求 (:1:266) JS: 在对象. (file:///data/data/org.nativescript.awsamplify/files/app/tns_modules/axios/lib/adapters/xhr.js:7:23) JS: 在要求 (:1:266) JS: 在 getDefaultAdapter (file:///data/data/org.nativescript.awsamplify/files/app/tns_modules/axios/lib/defaults.js:20:15) JS:在对象。(file:///data/data/org.nativescript.awsamplify/files/app/tns_modules/axios/lib/defaults.js:29:12) JS:在要求(:1:266)JS:在对象。(file:///data/data/org.nativescript.awsamplify/files/app/tns_modules/axios/lib/core/Axios.js:3:16) JS: 在要求 (:1:266) JS: 在对象. (file:///data/data/org.nativescript.awsamplify/files/app/tns_modules/axios/lib/axios.js:5:13) JS: 在要求 (:1:266) JS: 在对象。(file:///data/data/org.nativescript.awsamplify/files/app/tns_modules/axios/index.js:1:78) JS: 在要求 (:1:266) JS: 在对象。(file:///data/data/org.nativescript.awsamplify/files/app/tns_modules/aws-amplify/lib/API/RestClient.js:70:15) js:5:13) JS: 在需要 (:1:266) JS: 在 Object. (file:///data/data/org.nativescript.awsamplify/files/app/tns_modules/axios/index.js:1:78) JS: 在要求 (:1:266) JS: 在对象。(file:///data/data/org.nativescript.awsamplify/files/app/tns_modules/aws-amplify/lib/API/RestClient.js:70:15) js:5:13) JS: 在需要 (:1:266) JS: 在 Object. (file:///data/data/org.nativescript.awsamplify/files/app/tns_modules/axios/index.js:1:78) JS: 在要求 (:1:266) JS: 在对象。(file:///data/data/org.nativescript.awsamplify/files/app/tns_modules/aws-amplify/lib/API/RestClient.js:70:15)

如果有人有工作代码,请分享。

4

1 回答 1

1

问题出在最新版本的aws-amplify上。

将其更改为 " aws-amplify": "^0.2.9 " 版本,现在一切正常:)

编辑:具有最新 Amplify 版本的工作解决方案

import * as storage from "nativescript-localstorage";
import { Buffer } from "buffer";
import "nativescript-nodeify";

global["window"] = {};
global["window"]["localStorage"] = storage;
global["window"]["addEventListener"] = args => {
  return args;
};
global["window"]["navigator"] = {};
global["window"]["Buffer"] = Buffer;
global["window"]["setTimeout"] = setTimeout;
global["window"]["clearTimeout"] = clearTimeout;

global["navigator"] = {};

global["navigator"]["product"] = "ReactNative";
import Amplify, { Auth, Storage } from "aws-amplify";
import aws_config from "~/aws-exports";
Amplify.configure(aws_config);
于 2018-04-29T20:43:30.770 回答