uniapp中推送通知
1.在app.vue中添加监听
js
var globalEvent = uni.requireNativePlugin('globalEvent');
globalEvent.addEventListener('myEvent', function(e) {
console.log('onPushMessage myEvent' + JSON.stringify(e));
});
app.initEventBus()
2、调用插件app.initEventBus(),注册EventBus
js
@UniJSMethod(uiThread = false)
fun initEventBus(): Int {
if (!isRegistered) {
EventBus.getDefault().register(this)
Log.d("onPushMessage","onMessageEvent initEventBus")
isRegistered = true
}
return 1
}
3.收到通知设置通知点击跳转,跳转到MainActivity
js
public class MyPandoraEntry extends PandoraEntry
4.如果是离线通知的话,直接跳转到MainActivity或者设置打开应用
MyPandoraEntry启动模式设置成android:launchMode="singleTask"
5.点击通知后,在startActivity获取到点击通知后intent发送postSticky广播
js
@Override
public void startActivity(Intent intent) {
EventBus.getDefault().postSticky(new MessageEvent(intent.getExtras().get("key")));
}
6.插件收到信息后,通知uniapp层
js
fun onMessageEvent(event: MessageEvent) {
mUniSDKInstance.fireGlobalEventCallback("myEvent", params)
}
目前android ios 鸿蒙next都可以使用一样的方式,发送粘性广播,通过启动后监听。其中uniapp鸿蒙next需要自己使用接口,目前没有看到globalEvent