MobPush Android For Unity

news2024/11/27 12:51:31

集成准备

注册账号

使用MobSDK之前,需要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情可以点击查看注册流程

下载.unitypackage包

打开 Github 下载 MobPush-For-Unity 项目,下载完成后直接双击或者在Unity里面选择打开 MobPush.unitypackage,导入相关资源和脚本到您的 Unity项目即可使用。

导入unitypackage 

全部选择即可(其中Demo.cs 为API使用和页面示例,可删除)

 

修改unity 编译环境 

Android 集成编译配置 

资源修改

删掉Android目录下的 baseProjectTemplate.gradle launcherTemplate.gradle文件

修改unity配置 

使用系统的gradle配置文件

增加MobPush的gradle配置 

修改baseProjectTemplate.gradle和launcherTemplate.gradle

(注:此处修改为新生成的baseProjectTemplate.gradle文件和launcherTemplate.gradle文件)

baseProjectTemplate.gradle 

1.在classpath 'com.android.tools.build:gradle'后添加mob的classpath

classpath "com.mob.sdk:MobSDK:+"

2.添加MobPush需要的maven地址

maven {    url "https://mvn.mob.com/android/"}

 3.参考示例如截图

launcherTemplate.gradle 

1.修改launcherTemplate.gradle增加MobPush配置

apply plugin: 'com.mob.sdk'
MobSDK {
    appKey "xxxxxxxxx"
    appSecret "xxxxxxxxxx"
    MobPush {
        debugLevel 4
        devInfo {
            HUAWEI{
                 appId "xxxxxxxxx"
             }
            XIAOMI {
                appId "xxxxxxx"
                appKey "5581830029242"
            }
            MEIZU {
                appId "xxxxx"
                appKey "3fc6d1acc7ea4f90a0304967ee3a74ae"
            }
            OPPO {
                appKey "xxxxxxxx"
                appSecret "c850609d8a0f492f8b9eeca1189aaec2"
            }
            VIVO {
                appId "xxxxxx"
                appKey "9b01729c-6140-4ad3-ac79-4c4543e12130"
            }
        }
    }
}

2.参考示例截图

 

 ## 在gradle.properties中添加代码

MobSDK.spEdition=FP

 

 

挂载MobPush如图 

配置签名文件和包名 

1.配置自己项目的签名文件

2.配置自己项目的包名

 

设置隐私授权回调 

为保证您的App在集成MobSDK之后能够满足工信部相关合规要求,您应确保App安装首次冷启动且取得用户阅读您《隐私政策》授权之后,调用Mob提交到的隐私协议回传函数uploadPrivacyPermissionStatus回传隐私协议授权结果。 反之,如果用户不同意您App《隐私政策》授权,则不能调用uploadPrivacyPermissionStatus回传隐私协议授权结果。 详情参考:合规指南

//隐私授权接口调用,此接口务必不能漏调用,否则导致SDK不生效
mobPush.updatePrivacyPermissionStatus(true);

推送接口 

初始化和绑定监听(gameObject.GetComponent)

void Start ()
    {

    mobPush = gameObject.GetComponent();//初始化MobPush
    mobPush.onNotifyCallback = OnNitifyHandler;//消息回调监听
    mobPush.onTagsCallback = OnTagsHandler;//标签处理回调监听
    mobPush.onAliasCallback = OnAliasHandler;//别名处理回调监听
    mobPush.onDemoReqCallback = OnDemoReqHandler;

       //demo请求接口回调(为了方便测试,提供在客户端发送通知的接口,仅供测试时使用)
    mobPush.onRegIdCallback = OnRegIdHandler;//获取注册ID异步监听回调接口
    }

void OnNitifyHandler (int action, Hashtable resulte)
    {
    Debug.Log ("OnNitifyHandler");
    if (action == ResponseState.CoutomMessage)
        {
            Debug.Log ("CoutomMessage:" + MiniJSON.jsonEncode(resulte));
        }
    else if (action == ResponseState.MessageRecvice)
        {
            Debug.Log ("MessageRecvice:" + MiniJSON.jsonEncode(resulte));
        }
    else if (action == ResponseState.MessageOpened) 
        {
            Debug.Log ("MessageOpened:" + MiniJSON.jsonEncode(resulte));
        }
    }
void OnTagsHandler (int action, string[] tags, int operation, int errorCode)
    {

    Debug.Log ("OnTagsHandler  action:" + action + " tags:" + String.Join (",", tags) + " operation:" + operation + "errorCode:" + errorCode);
    }
void OnAliasHandler (int action, string alias, int operation, int errorCode)
    {
    Debug.Log ("OnAliasHandler action:" + action + " alias:" + alias + " operation:" + operation + "errorCode:" + errorCode);
    }
void OnRegIdHandler (string regId)
    {
    Debug.Log ("OnRegIdHandler-regId:" + regId);
    }
void OnDemoReqHandler (bool isSuccess)
    {
    Debug.Log ("OnDemoReqHandler:" + isSuccess);
    }

发送本地通知(LocalNotifyStyle ) 

LocalNotifyStyle style = new LocalNotifyStyle ();
style.setContent ("Text");
style.setTitle ("title");

#if UNITY_ANDROID
Hashtable extras = new Hashtable ();
extras["key1"] = "value1";
extras["key2"] = "value1";
style.setExtras (extras);
#endif
mobPush.setMobPushLocalNotification (style);

自定义通知栏样式( CustomNotifyStyle) 

CustomNotifyStyle style = new CustomNotifyStyle ();

#if UNITY_IPHONE
style.setType(CustomNotifyStyle.AuthorizationType.Badge | CustomNotifyStyle.AuthorizationType.Sound |      CustomNotifyStyle.AuthorizationType.Alert);

#elif UNITY_ANDROID

style.setContent ("Content");
style.setTitle ("Title");
style.setTickerText ("TickerText");

#endif
mobPush.setCustomNotification(style);

获取注册ID (getRegistrationId) 

mobPush.getRegistrationId();

添加标签 (addTags) 

String[] tags = { "tags1", "tags2", "tags3" };
mobPush.addTags(tags);

获取标签 (getTags) 

mobPush.getTags();

删除标签 (deleteTags) 

String[] tags = { "tags1", "tags2", "tags3" };
mobPush.deleteTags(tags);

清除全部标签 (cleanAllTags ) 

mobPush.cleanAllTags();

 添加别名 (addAlias)

mobPush.addAlias("alias");

获取别名 (getAlias) 

mobPush.getAlias();

清除别名 (cleanAllAlias) 

mobPush.cleanAllAlias();

停止通知服务 (stopPush) 

mobPush.stopPush();

重启通知服务 (restartPush) 

mobPush.restartPush();

判断通知是否被停止,返回值:bool类型(isPushStopped) 

mobPush.isPushStopped();

点击通知后是否打开应用首页(setClickNotificationToLaunchPage) 

mobPush.setClickNotificationToLaunchPage(false);

添加混淆配置 

为了防止二次混淆MobPush,需要在项目混淆文件中添加:

-keep class com.mob.**{*;}

-dontwarn com.mob.**

如果同时集成了华为、小米、魅族等渠道推送,同时也需要在项目中添加防二次混淆配置:

-keep class com.huawei.**{*;}

-keep class com.meizu.**{*;}

-keep class com.xiaomi.**{*;}

-keep class android.os.SystemProperties

 

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

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

相关文章

【图神经网络论文整理】(十)—— How Powerful are Graph Neural Networks?:GIN

作者信息:Keyulu Xu, Weihua Hu, Jure Leskovec, Stefanie Jegelka论文来源:Computer Vision and Pattern Recognition论文地址:https://arxiv.org/abs/1810.00826 本文介绍的论文是《How Powerful are Graph Neural Networks?》。 作者提…

MySQL表的增删查改(嘎嘎详细~

hello呀!各位,这里是Sunlightʊə。 目前大三,主要在学习Java语言。可以一起交流呀! 相关文章: MySQL数据库的基础操作(简单、基础版 专栏: Java数据结构 Java基础语法 MySQL基础 目录 新增&am…

流式 Isotype control 流式细胞仪control组

流式细胞术是非常让人着迷的实验。在众多医学研究手段里,如果说弱水三千只取一瓢的话,那我会首选流式细胞术。从我个人感受来讲,流式细胞术高速客观,具有统计学意义,能够处理复杂样本并同时获取多种参数,最最关键的是它性能可靠,可重复性非常好。 虽然也存在一些局限,…

3款超实用的电脑软件,免费又良心,内存满了也绝不卸载

超强的3款电脑软件,每款都是百里挑一的精品。 1、视频画质增强器 这是国人开发的图片视频增强工具,完全免费无任何弹屏广告,它能将画质很差的图片,一键转化为高清大图,同时还能无损放大图片,图片输出格式支…

第150篇 笔记-元宇宙(Metaverse)

定义:元宇宙是一个整体虚拟世界的概念,它与现实世界并行存在,提供主权数字所有权、独特的在线身份、互联环境和沉浸式体验。 随着最近区块链生态系统中NFT的爆炸,以及Facebook的头部转向“Meta”,元宇宙已进入主流公众…

代码源每日一题div1 枚举倍数 平方计数

平方计数 - 题目 - Daimayuan Online Judge 题意: 思路: 首先注意到暴力枚举一定超时,因此我们考虑只枚举一个指针,然后推一推式子降低另一个指针的复杂度 对于完全平方数这个条件,我们无法直接转换 即对于每一个a[…

1.3 测控电路的信号类型、测控电路的类型与组成、测控电路的发展趋势

笔者电子信息专业硕士毕业,获得过多次电子设计大赛、大学生智能车、数学建模国奖,现就职于南京某半导体芯片公司,从事硬件研发,电路设计研究。对于学电子的小伙伴,深知入门的不易,特开次博客交流分享经验&a…

技术指南 | 如何集成Perforce版本控制系统Helix Core (P4V) 与敏捷规划工具Hansoft

Helix Core是Perforce公司旗下一款集源代码管理和内容协作为一体的版本配置与管理工具,可以帮助您管理随时间推移而产生的数字资产(代码,文件等)变更,处理每天数以千万计的传输,上千TB的数据,以…

zabbix模板监控和自定义监控

目录 一、环境准备 二、使用模板监控 1、添加监控主机 2、设置应用监控模板 3、查看监控数据 三、自定义监控 1、配置自定义监控key 2、创建自定义监控模板、应用集、监控项和图形 2.1、监控模板、应用集、监控项介绍 2.2、创建监控模板 2.3、给自定义模板添加应用集…

mysql回表查询和索引覆盖

作为 JAVA 开发的必备知识,了解回表查询和索引覆盖可以大大提升数据库查询的速度,也是优化数据库查询的必备知识。 1. 什么是索引? 索引(在 MySQL 中也叫“键key”)是存储引擎快速找到记录的一种数据结构,通俗来说类…

什么是Hystrix?简述实现机制

分布式容错框架 阻⽌故障的连锁反应,实现熔断 快速失败,实现优雅降级提供实时的监控和告警资源隔离: 线程隔离,信号量隔离 线程隔离:Hystrix会给每⼀个Command分配⼀个单独的线程池,这样在进⾏单个服务调⽤…

深入react源码看setState究竟做了什么?

前言 在深究 React 的 setState 原理的时候,我们先要考虑一个问题:setState 是异步的吗? 首先以 class component 为例,请看下述代码(demo-0) class App extends React.Component {state {count: 0}hand…

LQ0272 矩形运算【计算几何】

题目来源:蓝桥杯2012初赛 Java A组H题 题目描述 在编写图形界面软件的时候,经常会遇到处理两个矩形的关系。 如图 1 所示,矩形的交集指的是:两个矩形重叠区的矩形,当然也可能不存在(参看图 2 &#xff09…

Linux下C语言UDP协议通信实践

UDP和TCP协议一样,都是传输层协议。是无连接的,不安全的,报式传输层协议,通信过程默认也是阻塞的。其通信特点主要如下: (1)不需要建立连接 ,所以不需要进行 connect () 操作 &…

国产操作系统之凝思磐石安装

一、凝思磐石操作系统简介 安全性是凝思磐石安全服务平台软件V2.4的主要特征,充分结合凝思科技独有技术与国内外多项安全标准的要求,在操作系统和应用程序的各个层次进行安全增强,使系统成为安全的有机整体。主要安全机制有以下几点&#xff…

高校房产管理现状及数图互通解决方案?

高校拥有大量的房产土地资源、公共设施、公有住房等,是高校开展各类教学、科研的基础场所,也是学校国有资产不可缺少的一部分。但是在管理过程中,存在着较多的困难与问题: 1.房地产的有效利用率不高 2.房地产管理信息化速度较慢…

异常解决!针对文件I/O写入操作时FileNotFoundException异常的修复

一. 异常问题 I/O对于在Java学习路上的初学者来说,简直就是一道长长的坎儿。我们在使用I/O的过程中,会有许多的异常需要处理,并且其中还带有一系列的验证逻辑在其中。如果在学习过程中,我们的基础打得不牢靠,那么可能…

如何在Xshell上运行一个C文件?

1.设置XTP服务器配置 按下图点击,创建一个新的连接: 如图所示,创建成功 2.Xshell界面创建 如图界面,就说明成功了 3.在电脑任意位置保存一个txt文件,注意扩展名要改成.c 4.在Xftp中导入刚写好的.c文件 如图&#xff…

pom报红

若是从其他地方导入的新工程,右边 maven 管理工具中 dependencies 若出现红色波浪线。通常用以下方式尝试解决。 第一步 0.导入外部项目,先配置jdk。 1.(检查maven仓库配置是否正确)File --> settings 输入maven&#xff0…

爆料,前华为微服务专家纯手打500页落地架构实战笔记,已开源

开篇 微服务是现代系统中非常受关注的“焦点”,越来越多地分布式系统都纷纷采用微服务的设计理念来演进其架构模型。随着微服务应用规模的增长,治理膨胀的系统会越来越困难。比起微服务设计和拆分,如何能够更好地治理大规模的微服务&#xf…