PushNotications, не отображаемая в AWS PinPoint из @ aws-ampify / pushnotification, не имеет методов configure, onRegeister или onNotification? - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь настроить PushNotiifactions на IOS-реактивной IOS, используя AWS Amplify и PinPoint.Я следовал инструкциям на AWS-Amplify для настройки push-уведомлений на React Native IOS, но заметил, что я не получаю токен после некоторой отладки, заметив, что импорт уведомлений не имеет конфигурации, onRegeister илиСпособы уведомления

Мои зависимости:

"dependencies": {
"@aws-amplify/analytics": "^1.2.10",
"@aws-amplify/pushnotification": "^1.0.22",
"aws-amplify-react-native": "^2.1.7",
"react": "16.6.3",
"react-native": "0.58.3"
},

My App.js

import React, { Component } from "react";
import {
StyleSheet,
Text,
View,
PushNotificationIOS,
} from "react-native";

import aws_exports from "./aws-exports";
import Analytics from "@aws-amplify/analytics";
import PushNotification from "@aws-amplify/pushnotification";

// PushNotification need to work with Analytics
Analytics.configure(aws_exports);
Analytics.enable();
PushNotification.configure(aws_exports);

type Props = {};
export default class App extends Component {

componentDidMount(){
console.log('PN',PushNotification);
// get the notification data when notification is received
PushNotification.onNotification(notification => {
// Note that the notification object structure is different from Android and IOS
console.log("in app notification", notification);

  // required on iOS only (see fetchCompletionHandler docs: https://facebook.github.io/react-native/docs/pushnotificationios.html)
  notification.finish(PushNotificationIOS.FetchResult.NoData);
});

// get the registration token
PushNotification.onRegister(token => {
  console.log("in app registration", token);
});

// get the notification data when notification is opened
PushNotification.onNotificationOpened(notification => {
  console.log("the notification is opened", notification);
});
}
render() {
return (

Welcome to React Native!
To get started, edit App.js

);
}
}

const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "center",
alignItems: "center",
backgroundColor: "#F5FCFF"
},
welcome: {
fontSize: 20,
textAlign: "center",
margin: 10
},
instructions: {
textAlign: "center",
color: "#333333",
marginBottom: 5
}
});

1 Ответ

0 голосов
/ 26 февраля 2019

Эти методы PushNotification являются частью его прототипа, вы должны использовать что-то вроде этого:

console.log('PN', Object.getOwnPropertyNames(Object.getPrototypeOf(PushNotification)))

Что касается отсутствия токена на onRegister, тестируете ли вы его на реальном устройстве вместо эмулятора

...