You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用能否程序化向Web浏览器发送推送通知?求解决方案

能否通过Android应用向Web浏览器发送推送通知?

完全可以实现,以下是两种常用的落地方案:

方案一:借助Firebase Cloud Messaging(FCM)

这是最省心的实现路径,FCM原生支持Android与Web端的跨平台推送:

  • Web端前置操作:在浏览器中集成FCM Web SDK,引导用户授权推送权限后,获取对应的推送令牌(token),并将该令牌同步到你的后端服务,或者直接传递给Android应用。
  • Android端发送逻辑:在Android应用中调用FCM的发送API,指定目标为Web端的令牌,构造通知内容后发起请求。示例代码(基于OkHttp):
OkHttpClient client = new OkHttpClient();
MediaType JSON = MediaType.get("application/json; charset=utf-8");

// 替换为实际的Web推送令牌和FCM服务器密钥
String json = "{ \"to\": \"WEB_PUSH_TOKEN\", \"notification\": { \"title\": \"来自Android的通知\", \"body\": \"这是一条测试推送\" } }";

RequestBody body = RequestBody.create(json, JSON);
Request request = new Request.Builder()
        .url("https://fcm.googleapis.com/fcm/send")
        .post(body)
        .addHeader("Authorization", "key=YOUR_FCM_SERVER_KEY")
        .addHeader("Content-Type", "application/json")
        .build();

client.newCall(request).enqueue(new Callback() {
    @Override
    public void onFailure(Call call, IOException e) {
        // 处理发送失败逻辑
    }

    @Override
    public void onResponse(Call call, Response response) throws IOException {
        // 处理发送成功逻辑
    }
});

方案二:直接基于Web Push协议实现

如果不想依赖第三方服务,可直接基于Web Push协议自定义实现:

  • Web端前置操作:通过浏览器的PushManager API获取用户的推送订阅信息,包含endpoint(推送服务器地址)、p256dh和auth(加密密钥),将这些信息保存到后端或Android应用中。
  • Android端发送逻辑:Android应用需要遵循Web Push的加密标准(VAPID或Legacy)对通知内容进行加密,然后向endpoint发送HTTPS POST请求,传递加密后的内容与必要头信息。这种方式需要处理复杂的加密逻辑,适合对自定义程度要求高的场景。

关键注意事项

  • 确认目标浏览器支持Web Push API(Chrome、Firefox、Edge等现代浏览器均已支持)。
  • 必须获得用户的明确授权,浏览器才会允许接收推送通知。
  • 存储用户的推送订阅信息时,需遵循隐私保护规范,避免数据泄露。

内容的提问来源于stack exchange,提问作者Amit Yadav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 16:57:17