gpt4 book ai didi

reactjs - React Native - 如何从推送通知打开路线

转载 作者:行者123 更新时间:2023-12-03 13:16:54 25 4
gpt4 key购买 nike

我正在使用react-navigationreact-native-push-notification。如何在 onNotification 回调中打开某个 StackNavigator 屏幕?应该在以下情况下工作:

  • 应用程序已关闭
  • 应用程序位于前台
  • 应用程序在后台运行

我现在只需要它在 Android 中运行。

我尝试将回调函数传递给组件中的通知:

_handleClick() {
PushNotification.localNotification({
foreground: false
userInteraction: false
message: 'My Notification Message'
onOpen: () => { this.props.navigation.navigate("OtherScreen") },
})
}

并在 PushNotification 配置中触发 onOpen:

onNotification: function(notification) {
notification.onOpen()
}

但似乎函数无法传递给通知,除非值是一个被忽略的字符串,导致 onOpen 未定义。

最佳答案

好吧,看来我得发布我自己的解决方案了:)

// src/services/push-notification.js
const PushNotification = require('react-native-push-notification')

export function setupPushNotification(handleNotification) {
PushNotification.configure({

onNotification: function(notification) {
handleNotification(notification)
},

popInitialNotification: true,
requestPermissions: true,
})

return PushNotification
}


// Some notification-scheduling component
import {setupPushNotification} from "src/services/push-notification"

class SomeComponent extends PureComponent {

componentDidMount() {
this.pushNotification = setupPushNotification(this._handleNotificationOpen)
}

_handleNotificationOpen = () => {
const {navigate} = this.props.navigation
navigate("SomeOtherScreen")
}

_handlePress = () => {
this.pushNotification.localNotificationSchedule({
message: 'Some message',
date: new Date(Date.now() + (10 * 1000)), // to schedule it in 10 secs in my case
})

}

render() {
// use _handlePress function somewhere to schedule notification
}

}

关于reactjs - React Native - 如何从推送通知打开路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47308089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com