uni-app 海外版 google原生adk推送插件需求 不走中国服务器

uni-app 海外版 google原生adk推送插件需求 不走中国服务器

开发环境 版本号 项目创建方式

目前需求是需要接入海外的google推送, 国内目前极光推送和个推 都有局限性,不是到达率低,就是服务器节点太少;现在经过调研 需要接入google原生sdk推送;希望有原生插件可以用

3 回复

可以做 专业插件开发 q 1196097915 主页 https://ask.dcloud.net.cn/question/91948

更多关于uni-app 海外版 google原生adk推送插件需求 不走中国服务器的实战教程也可以访问 https://www.itying.com/category-93-b0.html


可以做,联系QQ:1804945430

在处理uni-app海外版使用Google原生ADK(Android Development Kit)推送插件的需求时,你需要确保推送服务不经过中国服务器。以下是一个基本的实现思路,结合uni-app和Firebase Cloud Messaging (FCM) 的代码案例,因为FCM是Google提供的一个全球性的推送服务解决方案。

步骤一:配置Firebase项目

  1. 创建Firebase项目:前往Firebase Console,创建一个新项目。
  2. 添加Android应用:在项目中添加你的Android应用,下载google-services.json文件并放置在你的Android项目根目录下。

步骤二:集成Firebase SDK到uni-app

由于uni-app原生插件的支持,你需要编写一个原生插件来集成Firebase。以下是一个简化的插件示例:

1. 创建Firebase插件(以Android为例)

在你的uni-app项目根目录下创建native-plugins文件夹,然后创建firebase-push文件夹,结构如下:

native-plugins/
  └── firebase-push/
      ├── AndroidManifest.xml (如果需要额外的权限声明)
      ├── firebase-messaging-register.js (插件入口)
      └── platforms/
          └── android/
              ├── AndroidPlugin.java (插件实现)
              └── build.gradle (依赖配置)

2. 编写插件代码(AndroidPlugin.java)

package com.example.firebasepush;

import com.alibaba.fastjson.JSONObject;
import io.dcloud.feature.uniapp.annotation.UniJSMethod;
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;
import com.google.firebase.messaging.FirebaseMessaging;

public class AndroidPlugin extends UniModule {

    @UniJSMethod(uiThread = false)
    public void registerDevice(JSONObject args, UniJSCallback callback) {
        try {
            String token = FirebaseMessaging.getInstance().getToken().getAwaitResult();
            callback.invoke(token);
        } catch (Exception e) {
            callback.invokeAndKeepAlive(new JSONObject().put("error", e.getMessage()));
        }
    }
}

3. 配置manifest.json

在你的uni-app项目的manifest.json中添加原生插件配置:

"nativePlugins": [
    {
        "android": {
            "package": "com.example.firebasepush",
            "name": "firebase-push",
            "class": "AndroidPlugin"
        }
    }
]

步骤三:在uni-app中使用插件

在你的uni-app的JavaScript代码中调用插件方法:

plus.nativePlugin.firebasePush.registerDevice({}, (res) => {
    console.log('Device Token:', res);
});

确保你的应用已经正确配置了网络权限和Firebase SDK所需的权限。这样,你就可以通过Firebase Cloud Messaging接收全球范围内的推送通知,而无需经过中国服务器。

回到顶部