uni-app 海外版 google原生adk推送插件需求 不走中国服务器
uni-app 海外版 google原生adk推送插件需求 不走中国服务器
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
目前需求是需要接入海外的google推送, 国内目前极光推送和个推 都有局限性,不是到达率低,就是服务器节点太少;现在经过调研 需要接入google原生sdk推送;希望有原生插件可以用
可以做
专业插件开发 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项目
- 创建Firebase项目:前往Firebase Console,创建一个新项目。
- 添加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接收全球范围内的推送通知,而无需经过中国服务器。