我正在使用一个云功能并使用它发送推送通知。发送通知按预期工作,但click_action属性不工作。当我点击通知时,什么也没发生。这是我的代码:
我的通知有效负载:
const payload = {
notification: {
title: 'Soru Çözüm',
body: 'Attığınz soruya bir yorum geldi: ' + data.content,
icon: 'ic_stat_logo',
click_action: '.activities.SoruDetayActivity'
},
data: {
title: 'Soru Çözüm',
content: 'Sorunuz çözüldü.',
post: data.parent
}
};
意向过滤器:
<activity
android:name=".activities.SoruDetayActivity"
android:label="Soru"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name=".activities.SoruDetayActivity"/>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="www.website.com"
android:scheme="https" />
</intent-filter>
</activity>
您的通知负载似乎是正确的。尝试通过删除数据和类别来更改意向过滤器。可浏览标签,如以下代码行:
<activity
android:name=".activities.SoruDetayActivity"
android:label="Soru"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name=".activities.SoruDetayActivity"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
您的操作名称应该是要启动的活动的全名。你现在拥有的是部分名称,相对于你的应用程序包的名称。我们看不到这是什么,因为前缀在您的清单的其他地方。一旦你找到它,它应该看起来更像这样:
click_action: 'com.yourapp.activities.SoruDetayActivity'
Notification
将尝试启动URL,指定的活动名称不符合URL的条件,因此Android不会执行任何操作,因为它无法识别,相反,如果您在Manifest
中使用<data>
标记中提到的host
地址,它会将您重定向到该活动,类似于下面的
click_action: 'https://www.website.com'
对我来说,问题在于Android Studio缓存。清除项目并重建修复它。android:name字符串无关紧要。我的Android Studio版本是花栗鼠|2021.2.1补丁1