离线工程集成其他推送

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

相关推荐
前端之虎陈随易9 小时前
编程语言级别的Skill市场,AI Agent 的未来形态
前端·vue.js·人工智能·typescript·node.js
一路向北he9 小时前
字节钢铁军团--“提供情境,而非控制”
java·开发语言·前端
kyriewen9 小时前
豆包和千问同时关了智能体,我用它们搭的 3 个自动化全废了——迁移方案整理
前端·javascript·ai编程
前端一小卒9 小时前
我用 TypeScript 从零手写了一个 Claude Code,然后发现它的核心只有 30 行
前端·agent
大圣编程11 小时前
Python中continue语句的用法是什么?
开发语言·前端·python
yuhaiqiang11 小时前
随手 vibecoding 的浏览器插件已经 6000 多次下载,聊聊他的产品设计
前端·后端·面试
之歆11 小时前
Vue商品详情与放大镜组件
前端·javascript·vue.js
再吃一根胡萝卜12 小时前
如何把小米 MiMo 接入 CodeBuddy,打造私有 Agent
前端
负责的蛋挞13 小时前
异步HttpModule的实现方式
java·服务器·前端