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

前言

继【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});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;State<MyHomePage> createState() => _MyHomePageState();
}class _MyHomePageState extends State<MyHomePage> {final String appKey = "XXXX";final String masterSecret = "XXXXXXX";late String base64AuthString;final Dio dio = Dio();late String notificationAlert;late String notificationTitle;late String notificationAudienceAlias;void initState() {final content = utf8.encode("$appKey:$masterSecret");base64AuthString = "Basic ${base64Encode(content)}";super.initState();}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<String> 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,就可以了。不清楚原因,所以就先记录一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/5443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP算命源码_最新测算塔罗源码_可以运营

众筹商城源码 众筹商品平台 商城加共识元富之路 网上商城众筹 前端是编译后的&#xff0c;后端PHP&#xff0c;带商城 运行截图 源码贡献 https://githubs.xyz/boot?app39 部分数据库表 CREATE TABLE ti_shopro_store (id int(11) NOT NULL AUTO_INCREMENT COMMENT ID,nam…

当Kubeflow遇上GPU池化

随着人工智能技术的迅猛发展&#xff0c;AI开发已成为企业创新的重要驱动力。然而&#xff0c;在AI开发过程中&#xff0c;企业面临着诸多挑战&#xff0c;如开发工具的选择和开发资源如何高效利用等。本文将围绕这些挑战&#xff0c;探讨GPU池化如何赋能Kubeflow进行AI开发&am…

实验八智能手机互联网程序设计(微信程序方向)实验报告

请在上一次实验的基础之上完成“手机快速注册”页面、“企业用户注册”页面&#xff0c;并实现点击手机快速注册和企业用户注册后转跳至该页面在“手机快速注册”页面&#xff0c;输入框内输入内容并失去焦点后&#xff0c;下方的按钮会变化 在企业用户注册页面&#xff0c;用户…

【网站项目】木里风景文化管理平台

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

在Linux操作系统中的磁盘分区管理案例

1.在硬盘sdb上创建不同的分区实例练习 Linux操作系统是安装在硬盘sda硬盘中&#xff0c;所以不要轻易动硬盘sda中的文件信息 有如下需求 创建主分区 500M 文件系统 ext4 挂载点 /web 创建主分区 500M 文件系统 ext4 挂载点 /nginx 创建逻辑分区 500M 文件系…

【webrtc】MessageHandler 4: 基于线程的消息处理:以Fake 收发包模拟为例

G:\CDN\rtcCli\m98\src\media\base\fake_network_interface.h// Fake NetworkInterface that sends/receives RTP/RTCP packets.虚假的网络接口,用于模拟发送包、接收包单纯仅是处理一个ST_RTP包 消息的id就是ST_RTP 类型,– 然后给到目的地:mediachannel处理: 最后消息消…

GPT3 终极指南(二)

原文&#xff1a;zh.annas-archive.org/md5/6de8906c86a2711a5a84c839bec7e073 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第五章&#xff1a;GPT-3 作为企业创新的下一步 当一个新的创新或技术转变发生时&#xff0c;大公司通常是最后一个采纳的。它们的等级结构…

虚拟机安装与配置win7

一、安装镜像 Windows7 64位 ed2k://|file|cn_windows_7_ultimate_with_sp1_x64_dvd_u_677408.iso|3420557312|B58548681854236C7939003B583A8078|/ 建议迅雷下载 二、VMware 安装win7 1.新创自定义虚拟机 2.默认即可 3.iso文件我们自己下载&#xff0c;选择一个空的磁盘 4.…

【记录】Python3| 将 PDF 转换成 HTML/XML(✅⭐⭐⭐⭐pdf2htmlEX)

本文将会被汇总至 【记录】Python3&#xff5c;2024年 PDF 转 XML 或 HTML 的第三方库的使用方式、测评过程以及对比结果&#xff08;汇总&#xff09;&#xff0c;更多其他工具请访问该文章查看。 文章目录 pdf2htmlEX 使用体验与评估1 安装指南2 测试代码3 测试结果3.1 转 HT…

闪存存储和制造技术概述

闪存存储技术 引言 性能由高到低排序&#xff1a;SLC -> MLC -> TLC -> QLC 根据这个排序读写速度也越来越低&#xff0c;价格越来越便宜 1. SLC SLC&#xff08;Single-Level Cell&#xff0c;单层单元&#xff09;&#xff1a; SLC 闪存具有最高的性能、耐用性和可…

【专篇】DDR3 SDRAM-01总体介绍

概念 DDR3 SDRAM(Double-Data-Rate 3 Synchronous Dynamic Random-Access Memory,第三代双倍速率同步动态随机存取存储器)是计算机存储技术的一种重要进步,它在前代DDR2 SDRAM的基础上进行了多项改进和优化。以下是DDR3 SDRAM的特点介绍: 双倍速率(DDR):DDR3 SDRAM采用…

c#数据库: 4.修改学生成绩

将4年级的学生成绩全部修改为100分,。修改前的学生信息表如图所示: using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks;namespace StudentUpdate {internal class Program{s…

Ubuntu如何更换 PyTorch 版本

环境&#xff1a; Ubuntu22.04 WLS2 问题描述&#xff1a; Ubuntu如何更换 PyTorch 版本考虑安装一个为 CUDA 11.5 编译的 PyTorch 版本。如何安装旧版本 解决方案&#xff1a; 决定不升级CUDA版本&#xff0c;而是使用一个与CUDA 11.5兼容的PyTorch版本&#xff0c;您可…

c#数据库: 10.调用存储过程查询信息,并显示在窗体上

查询女生信息&#xff0c;并将信息显示在窗体上: 原数据表//右键数据库名,新建查询 ------------- 新建查询窗口,添加新建存储过程Procedure_GetGirls1和查询代码如下 : CREATE PROCEDURE dbo.Procedure_GetGirls1 /*存储过程名称*/ AS SELECT * f…

【docker】Spring Boot3.x 打包 Docker容器

Docker化Spring Boot应用 创建文件夹 demo mkdir democd demo创建Dockerfile # 两个 openjdk 二选一 #FROM openjdk:17-jre-alpineFROM eclipse-temurin:17MAINTAINER chengxuyuanshitang <chengxuyuanshitangXX.com>RUN mkdir -p /workspace/java/demoCOPY demo.ja…

Python 与 TensorFlow2 生成式 AI(五)

原文&#xff1a;zh.annas-archive.org/md5/d06d282ea0d9c23c57f0ce31225acf76 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第十二章&#xff1a;用生成式人工智能玩视频游戏&#xff1a;GAIL 在之前的章节中&#xff0c;我们已经看到如何使用生成式人工智能来生成…

LVGL自定义滑动

触摸和编码器都可以操作 typedef struct {lv_obj_t* obj;int16_t x;int16_t y;int16_t width;int16_t height; }pos_and_size_t;typedef struct {lv_obj_t* obj;lv_coord_t height;lv_coord_t width;lv_coord_t width_pad;lv_coord_t height_pad;lv_coord_t child_widget;lv_co…

Mybatis.net + Mysql

项目文件结构 NuGet下载Mybatis.net相关包&#xff1a;IBatisNet 安装完成后&#xff0c;会显示在&#xff0c;在已安装页面。同时&#xff0c;在管理器中的引用列表中&#xff0c;会多出来两个引用文件 IBatisNet.CommonIBatisNet.DataMapper 安装 Mysql.data。 注意&#xff…

Stm32CubeMX 为 stm32mp135d 添加网卡 eth

Stm32CubeMX 为 stm32mp135d 添加网卡 eth 一、启用设备1. eth 设备添加2. eth 引脚配置2. eth 时钟配置 二、 生成代码1. optee 配置2. uboot 配置3. linux 配置 bringup 可参考&#xff1a;Stm32CubeMX 生成设备树 一、启用设备 1. eth 设备添加 我这里只启用一个eth设备&…