【Flutter】极光推送配置流程(小米厂商通道) 章二

您所在的位置:网站首页 极光推送厂商通道怎么设置的 【Flutter】极光推送配置流程(小米厂商通道) 章二

【Flutter】极光推送配置流程(小米厂商通道) 章二

2024-07-16 20:01:06| 来源: 网络整理| 查看: 265

相关文章

推送配置共三篇(如下链接) 【Flutter】极光推送配置流程(极光通道/华为厂商/IOS) 章一 【Flutter】极光推送配置流程(小米厂商通道) 章二 【Flutter】极光推送配置流程(VIVO/OPPO/荣耀厂商通道) 章三

前言

继【Flutter】极光推送配置流程(极光通道/华为厂商/IOS) 章一 并且,我大概率不会去修改第一篇文章的内容。 随着我自己在配置公司的项目的同时,我希望一直更新这个推送系列文章。 在章一配置完后,也是出现了一些问题,所以本章主要围绕

华为厂商通道配置出现的问题如何配置小米厂商通道 极光插件

首先是极光插件,可以去更新,但要看更新了什么内容 在这里插入图片描述 看这个更新内容,JPush 5.2.4 记得在之前那篇blog,我写了5.2.3 所以在.gradle文件中,把版本提到5.2.4(这里我直接截) 在这里插入图片描述

配置小米厂商通道

小米是需要上架应用的,需要企业开发者。 以下截图和代码是公司的项目,部分地方就马赛克了

上架

需要公司提供资料(软著/APP备案等),上架可能会快一些(1天以上) 在这里插入图片描述

推送申请估计要点时间(3天以上)

在这里插入图片描述 在这里插入图片描述 通道要申请下来,这里的类别,记得按自己需要。 在这里插入图片描述 类别选择参考这篇 在这里插入图片描述 填完类别等信息后 这里的channel_ID记一下 在这里插入图片描述 这里的appKey AppSecret AppID对应极光那三个要填写的 在这里插入图片描述 名字都一样的,把内容填写进去,再开启 在这里插入图片描述

build.gradle

回到项目 看这篇文章 在这里插入图片描述

配置依赖

在这里插入图片描述

// 小米 implementation 'cn.jiguang.sdk.plugin:xiaomi:5.2.4.a'

小米参数 在这里插入图片描述

填写小米参数

在这里插入图片描述

用一台小米手机来运行项目

在这里插入图片描述 若出现

xiao mi push register success

就代表配置好了 在这里插入图片描述

调用API发送推送

在这里插入图片描述 这里的channel id是之前创建的通道的id 代码之前篇章一有贴过 在这里插入图片描述

import 'dart:convert'; import 'dart:io'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: '推送', theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), useMaterial3: true, ), home: const MyHomePage(title: '信息推送'), ); } } class MyHomePage extends StatefulWidget { const MyHomePage({super.key, required this.title}); final String title; @override State createState() => _MyHomePageState(); } class _MyHomePageState extends State { final String appKey = "XXXX"; final String masterSecret = "XXXXXXX"; late String base64AuthString; final Dio dio = Dio(); late String notificationAlert; late String notificationTitle; late String notificationAudienceAlias; @override void initState() { final content = utf8.encode("$appKey:$masterSecret"); base64AuthString = "Basic ${base64Encode(content)}"; super.initState(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: Theme.of(context).colorScheme.inversePrimary, title: Text(widget.title), ), body: Center( child: Padding( padding: const EdgeInsets.all(8.0), child: ListView( children: [ TextField( decoration: const InputDecoration( labelText: "主标题", hintText: "请输入...", ), onChanged: (s) { notificationAlert = s; }, ), TextField( decoration: const InputDecoration( labelText: "副标题", hintText: "请输入...", ), onChanged: (s) { notificationTitle = s; }, ), TextField( decoration: const InputDecoration( labelText: "别名", hintText: "请输入...", ), onChanged: (s) { notificationAudienceAlias = s; }, ), Padding( padding: const EdgeInsets.all(8.0), child: ElevatedButton( onPressed: () { showDialog( context: context, builder: (context) { return SimpleDialog( title: const Text("确定发送?"), children: [ SimpleDialogOption( child: const Text("确定"), onPressed: () { pushMessage( notificationAlert: notificationAlert, notificationTitle: notificationTitle, notificationAudienceAlias: [ notificationAudienceAlias ], ); Navigator.of(context).pop(); }, ), SimpleDialogOption( child: const Text("取消"), onPressed: () { Navigator.of(context).pop(); }, ) ], ); }); }, child: const Text("推送消息"), ), ), ], ), ), ), ); } /// 推送 pushMessage({ required String notificationAlert, required String notificationTitle, required List notificationAudienceAlias, }) async { const String url = "https://api.jpush.cn/v3/push"; var data = json.encode({ "platform": ["android", "ios"], "inapp_message": {"inapp_message": false}, "options": { "classification": 0, "time_to_live": 86400, "apns_production": false, "third_party_channel": { "huawei": { "skip_quota": false, "distribution": "secondary_push", "channel_id": "", "category": "DEVICE_REMINDER", "receipt_id": "" }, "xiaomi": { "channel_id": "XXXXXX", "distribution": "secondary_push", "skip_quota": false } } }, "notification": { "alert": notificationAlert, "android": { "alert": notificationAlert, "title": notificationTitle, "intent": {"url": "intent:#Intent;action=android.intent.action.MAIN;end"}, "sound": "", "priority": 0, "category": "", "alert_type": 7, "style": 0, "builder_id": 0, "large_icon": "", "badge_add_num": 1, "extras": { "param": "123" } }, "ios": { "alert": { "title": notificationAlert, "body": notificationTitle, }, "content-available": 0, "mutable-content": 1, "sound": "default", "badge": "+1", "thread-id": "", "interruption-level": "active", "filter-criteria": "", "extras": { "参数": "A" } } }, "audience": { "alias": notificationAudienceAlias, } }); final response = await dio.request( url, data: data, options: Options( headers: { HttpHeaders.authorizationHeader: base64AuthString, }, method: "POST", ), ); print(response.data.toString()); } }

后台关闭APP,杀掉APP,再发送一下 在这里插入图片描述 手机收到就代表配置完成 在这里插入图片描述

遇到的问题 设置别名

这个是在公司项目里面遇到的 需求是这样的:注册好极光的插件之后,若用户登录之后,我需要给当前设备设置别名为手机号。 当调用

final value = await jPush.setAlias("17777777777");

在这里插入图片描述 在这里插入图片描述 这个问题目前解决的办法是在手机号前加了一些数字比如000001777777777,就可以了。不清楚原因,所以就先记录一下。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭