当前位置: 首页 > 知识库问答 >
问题:

react native push notification onNotification不会触发

郎祯
2023-03-14

我正在使用zo0r反应本机推送通知库。

"react": "16.0.0-alpha.12",
"react-native": "^0.45.1",
"react-native-push-notification": "^3.0.0"

每次打开应用程序时都会运行以下代码:

PushNotification.configure({
    onNotification: function(notification) {
        console.log('onNotification');
        ToastAndroid.show('onNotification', 3000);
    }
});

我从后台服务发送本地推送通知:

PushNotification.localNotification({
    message: 'Hello World',
    smallIcon: 'ic_launcher'
});

通知送达。当我点击它时,onNotification方法不会被调用,然后当我收到另一个通知时,它实际上会被调用。似乎只有当应用程序是内存atm时,它才能工作。

我做错什么了吗?

我还打开了一个GitHub问题。

共有3个答案

郏正信
2023-03-14

在我的代码中,我在App类之外配置了通知-这是一个问题。我刚刚将配置移动到App构造函数,现在它工作得很好,onNotify被调用没有问题:

class App extends React.Component {
    constructor(props) {
        super(props);
        PushNotification.configure({ ... });
    }
}

最新的react native push notificationlib版本建议:https://github.com/zo0r/react-native-push-notification#usage

钦高峯
2023-03-14

它是专门写的,不要将配置放在React生命周期中。否则Android将不会有正确的行为(这一点我非常痛苦!)。这里你有一个很好的教程:https://product.farewell.io/visible-react-native-push-notifications-that-work-on-both-ios-and-android-5e90badb4a0f解释得很糟糕,但方法是完美的。使用一个类来初始化和调用方法。按照他的建议在顶部组件中初始化类。效果很好。使用本教程完成缺少的信息:https://shift.infinite.red/react-native-node-js-and-push-notifications-e851b279a0cd祝你好运!

桓修能
2023-03-14

它的常见问题,该问题发生在使用启动屏幕时。像这样编辑清单:

<activity
            android:name=".SplashActivity"
            android:theme="@style/SplashTheme"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize" >
          <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.INFO" />
          </intent-filter>
        </activity>
 类似资料:
  • 正如标题所说,我根本无法让Quartz.net工作。我从NuGet获得了最新版本的Quartz.net(2.2.1)、Common.Logging(2.1.2)、Common.Logging.NLog(2.0.0)和NLog(2.1.0)。触发器没有被触发,而且石英绝对没有记录任何东西。我猜我搞砸了配置。 我的应用程序配置: 有一个作业和一个触发器与之相关: 调度程序将启动,作业和触发器将正确添加

  • 问题内容: 我试图设置一个监听器来确定何时按下输入按钮,但是根本没有触发。我在装有Android 4.2.2的LG Nexus 4上进行了测试。可以在具有Android 2.3的Amazon Kindle Fire上使用,并且无处可用!我也无法为按钮设置文本。这是代码: 我究竟做错了什么?我怎样才能解决这个问题? 问题答案: 您可以使用TextWatcher。

  • 问题内容: 我正在尝试在应用程序中使用AngularJS,并在某种程度上取得了成功。 我能够获取数据并将其显示给用户。我有一个按钮,我想通过该按钮发布DELETE请求。下面是我的代码。 这是获取信息并将其显示给用户的功能。 数据已获取并正确显示。 但是,单击删除按钮后,不会触发其中的代码。在GoogleChrome浏览器的开发人员工具中,我可以看到为代码生成了有效值,但未触发代码。从我尝试去掉花括

  • 我有这个脚本: HTML中的用法: 由于某些原因,它的工作,如果页面重新加载一半,但不,它没有开火,在它工作之前,所以我不知道发生了什么。我在wordpress网站上使用这个。

  • 我正在尝试验证表单字段集的输入值,并在发生无效输入时使Thymeleaf显示一些错误消息。但不知何故,以下Thymeleaf命令从未以正确的方式得到解决: 关于我的环境的更多信息,我想不会有什么坏处: 根据Spring GS指南“验证表单输入”,我实现了相关的控制器方法,如下所示: 控制器: 当我向控制器提交无效的表单输入时,它会根据需要运行if子句,这样打印log.infos并再次返回相同的页面

  • 问题内容: 我正在研究一个脚本,以使用jQuery异步加载一些图像。 这是加载图像的函数的代码片段- 我已经在Firefox,Webkit(Safari,Chrome)中对此进行了测试,并且可以正常工作。 图像位于服务器上的文件夹中,而我使用的是jQuery 1.3。 有任何想法吗? 问题答案: 解决此问题的简单方法是提供jQuery设置或或或任何其他可用的响应类型。 我遇到了同样的问题,但是在.

  • 我使用next.js提供的with-redux示例(https://github.com/zeit/next.js/tree/canary/examples/with-redux)在next.js中设置了React-Redux。此外,我还设置了thunk,因为将来大多数redux调用都将是异步的(现在只是初始状态,将被更改)。 当我现在尝试使用thunk调度函数时,还原器从未被触发。 现在我已经到

  • 问题内容: 我目前有一个简单的react应用程序,无法获得这些onchange事件来激发我的生命。 有趣的是,当我使用时,会触发事件,但函数中的ev变量不正确。 问题答案: 尝试: 要么: 代替: