IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 《Flutter进阶》: flutter推送之mob -> 正文阅读

[移动开发]《Flutter进阶》: flutter推送之mob

  • android厂推解析数据问题
    mob flutter集成了tcp和厂推功能 , 对于tcp的数据,可以通过addPushReceiver方法获取到点击消息,并做跳转
 MobpushPlugin.addPushReceiver((Object event) {
        try {
          if (event != null) {
            Map<String, dynamic> map = convert.jsonDecode(event);
            if (map["action"] == 2) {
              //1是收到消息,2是点击消息
              ("mob  _onEvent -> click notification ").p;
              String pushData =
                  (map["result"]["extrasMap"]["pushData"] as String)
                      .replaceAll("\\", "");
            }
          }
        } catch (e) {
          print(e);
        }
      }, (Object event) {
        ("mob  _onError -> :$event").p;
      });

但是如果是厂推的消息点击的话 , flutter那边是没有做对应的通道解析的 . 不过flutter已经做好了原生通道的intent解析(我并没用使用 , 一开始不知道flutter有这个方法了) ,.

如果想要获取到厂推的消息点击后携带信息 , 那么是需要从intent中获取到信息 ,保存 ,再通过MethodChannel获取.
mob的方法是:
1.解析数据
在这里插入图片描述
2.使用MethodChannel获取启动的pushData(这一步需要自己做);

我这边的思路是:
1.activity的onCreate中获取intent保存在activity;
2.字符串截取pushData=后面的数据 , 正则取出第一个json ;
3.使用MethodChannel获取启动的pushData;
代码如下:(kotlin版)

  • 保存intent:
  var bundle: Bundle? = null;
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        try {
            bundle = intent.extras;
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }
  • 解析数据
        try {
                                //1.在Activity的onCreate 方法内保存bundle;
                               var str :String= bundle.toString();
                                //2.截取pushData=后面的字段
                                if(str.contains("pushData")){
                                    str=str.substring(str.indexOf("pushData=")+9);
                                    //正则取出第一个json数据
                                    var regex:Regex= Regex("(?=\\{)[^\\s]*(?<=\\\"\\})");
                                    var match=regex.find(str);//匹配
                                    var pushData: String? = match?.value.toString();//获取值
                                    Log.i("test", "bundle  contains key : pushData  $pushData");
                                    result!!.success(pushData);
                                }else{
                                    Log.i("test", "bundle do not contains key : pushData ");
                                    result!!.success(null);
                                }
                            } catch (e: Exception) {
                                e.printStackTrace();
                                result!!.success(null);
                            }
  • IOS在后台运行无法收到推送
    应用在前端一般走的是TCp通道,应用处于后台走的是APNS通道,APN收不到,是与您自己设置的开发环境以及证书有关的,检查这几点:

第一,初始化我们sdk的appkey,检查自己项目里默认的plist文件里配置初始化我们sdk的appkey等信息是否有问题,或者多加空格这些,

第二,检查是否加了ATS的http权限配置

    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

第三确定推送相关权限打开 Push Notifications 和Background Modes 打开
在这里插入图片描述

第四代码环境看设置的是开发环境还是生产环境
// 开发环境 false, 线上环境 true
MobpushPlugin.setAPNsForProduction(false)如果是开发环境,那么自己项目环境就要设置一样的开发环境,
在这里插入图片描述

,然后后台推送或者调用api推送环境都要设置开发环境
在这里插入图片描述

生产环境同理,需要注意:
1.测试生产环境,需要achiver 出ipa包,正常情况测试环境和生产环境token是不一样的,如果直接修改xcode的release环境直接测试, token没变化 ,会导致测试环境和生产环境混乱,并不能测试生产环境,所以需要achiver出ipa包测生产,可以上传到蒲公英安装测试,手机上之前测试的要卸载重新安装测试才行,最后检查在我们后台上传的开发证书和生产证书是不是对的,有没有上传颠倒等,密码最好是6位数密码.

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 00:09:15  更:2021-07-24 00:09:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 3:11:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码