我在使用 Capacitor 和 Quasar 的应用程序中遇到问题。我们利用 @capacitor/local-notifications 插件来处理本地通知,并且我们有一个在单击通知时触发的方法,使用以下侦听器:
await LocalNotifications.addListener('localNotificationActionPerformed', handleLocalNotificationAction);
但是,当应用程序关闭(不在前台)时,这个侦听器显然不会触发。我们需要一种在通知点击时执行方法的方法,例如在特定 URL 打开应用程序或即使应用程序关闭也执行特定操作。
我们尝试了一些事情,例如:
预先感谢您的帮助!
经过一番尝试,我找到了解决问题的方法。基本上监听器被调用,但我用来处理的方法有一些未加载的依赖项(在我的例子中是 Vue Router)。
我刚刚添加了一个重试方法,该方法将等待启动时间并重试,结果证明它有效!
我会发布我的功能,也许它可以帮助某人:
const openAccordingToPlatform = async (params) => {
if (Platform.is.capacitor) {
pushWithRetry(params);
return;
}
const url = router().resolve(params).href;
openOnNewTab(url);
};