uni-app 有偿写谷歌的firebase推送插件

发布于 1周前 作者 wuwangju 来自 Uni-App

uni-app 有偿写谷歌的firebase推送插件

任务需求

哪位可以接谷歌的firebase推送插件任务?只需推送,包括Android和ios推送。

有偿对接

firebase firebase firebase firebase firebase

qq 18879308

2 回复

目前是以uniapp包含android/ios的方式去开发的,如果想要高度定制,就需要android/ios分别把uniapp那部分代码包含进来,代码跟原生插件开发差不多那样子。
因为使用uniapp打apk包,并不支持定制化gradle配置,比如apply一个插件就不行,而firebase需要apply它的插件。


当然,以下是一个基本的uni-app插件示例,用于集成谷歌的Firebase Cloud Messaging (FCM) 实现推送功能。此示例主要展示如何在uni-app中集成Firebase并进行设备注册和消息接收。

首先,确保你已经在Firebase控制台中创建了项目,并获取了应用的配置信息(如google-services.json)。

1. 安装Firebase SDK

由于uni-app主要面向H5、小程序、App等平台,这里我们主要关注App平台的实现。你需要通过原生插件的方式集成Firebase SDK。

2. 创建uni-app插件

插件目录结构

uni-firebase-push/
├── Android/
│   └── app/
│       └── src/
│           └── main/
│               ├── java/
│               │   └── com/
│               │       └── yourpackage/
│               │           └── firebase/
│               │               └── MyFirebaseMessagingService.java
│               └── res/
│                   └── raw/
│                       └── google-services.json
├── ios/
│   └── ... (iOS相关配置和代码)
├── manifest.json
└── plugin.js

MyFirebaseMessagingService.java

package com.yourpackage.firebase;

import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
import android.util.Log;

public class MyFirebaseMessagingService extends FirebaseMessagingService {
    private static final String TAG = "MyFirebaseMsgService";

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        // TODO: Handle incoming message
        Log.d(TAG, "From: " + remoteMessage.getFrom());
        // ...
    }
}

manifest.json

manifest.json中配置插件信息和服务声明:

{
    "id": "uni-firebase-push",
    "version": "1.0.0",
    "name": "uni-firebase-push",
    "description": "A plugin for Firebase push notifications in uni-app",
    "app-plus": {
        "distribute": {
            "android": {
                "config": {
                    "googleServicesFile": "Android/app/src/main/res/raw/google-services.json"
                }
            }
        }
    },
    "_native": {
        "android": {
            "services": [
                {
                    "name": "com.yourpackage.firebase.MyFirebaseMessagingService",
                    "intentFilter": [
                        {
                            "action": "com.google.firebase.MESSAGING_EVENT"
                        }
                    ]
                }
            ]
        }
    }
}

3. 使用插件

在uni-app项目中引用并使用该插件:

// 在main.js中引入插件
const firebasePush = uni.requireNativePlugin('uni-firebase-push');

// 注册设备(此步骤通常在应用启动时执行)
firebasePush.registerDevice().then(token => {
    console.log('Device registered with token:', token);
}).catch(error => {
    console.error('Failed to register device:', error);
});

注意:上述代码仅展示了核心部分,实际项目中还需处理更多细节,如iOS端的集成、权限管理、消息处理逻辑等。另外,由于uni-app插件开发涉及原生代码,确保你有相应的原生开发环境(如Android Studio、Xcode)进行调试和测试。

回到顶部