Unity 下集成第三方原生 SDK,以极光厂商通道为例
Unity中集成三方SDK有两种方式:
Unity 项目开发中时常有集成 Android 第三方 SDK 的需求,比如接入第三方推送,分享等功能。而第三方 SDK 的集成文档提到的往往是基于原生 Android 项目集成。
第一种 导出 gradle 项目进行集成
导出 gradle 项目的方式可以直接将项目导入 AndroidStudio 中进行集成,而此时可以直接按照第三方集成文档完成集成。

第二种 直接在 Unity 中集成
有些公司是基于 Unity 项目结构进行自动打包的,这样导出 gradle 项目的集成方式就不适用于自动打包流程,只能直接在 Unity 项目中直接集成 SDK 才能满足需求。这时候基于原生 Android 项目的 SDK 的集成步骤对应 Unity 中就要稍作修改。
举例
本文以集成极光推送厂商通道为例介绍如何在 Unity 集成 第三方SDK。
JPush
JPush 是极光官方的推送 SDK,集成后可以通过调用 API 推送消息,并且官方提供了对应 Unity 平台使用的插件 jpush-unity3d-plugin。首先参照插件集成方式集成基础版本的JPush,这里以 JPush v3.1.6 为例,对应插件版本 v3.2.7 ,集成成功后能够成功接受后台推送,并且 Unity 对应结构:

厂商通道
极光推送 VIP 服务提供了切换包括小米,华为,魅族等各个平台厂商通道服务,切换系统级别的推送通道,提高推送送达率,详情联系商务。
注意,厂商通道集成成功的前提是基础版已经能成功收到推送。
华为通道为例
获取到对应 v3.1.6 的厂商通道文档,打开华为集成指南可以看到大致步骤:

现在我们要集成厂商通道怎么做:
- 第一种:导出 gradle 项目的集成方式,直接对应上面步骤配置即可。
- 第二种:直接在 Unity 中集成。
第一种方式就不说了,下面对应步骤介绍第二种集成方式:
1.增加华为HMS SDK的推送包及资源文件
- 将third-push/huawei/res里面的资源复制到工程/res中对应的目录
- 将third-push/huawei/libs中的包添加到工程/libs目录下。
--------------- 对应到 Unity 就是 ---------------- - 将 third-push/huawei/res 里面的资源复制到工程 plugins/android/res 中对应的目录,res 不存在就新建一个。
- 将third-push/huawei/libs中的包添加到工程plugins/android目录下,与 jpush.aar 同级。
2.增加support v4包
- JPush 3.0.9 版本后不需要添加,略过
3.修改 minSdkVersion 的值
4.配置HMS SDK Push必须的组件
5.配置接收 HMS 消息的广播接收器
6.替换 HMS 的 appid
- 这四步对应文档修改 plugin/android/AndroidManifest.xml 即可。
7.在build.gradle中配置在华为后台添加的指纹证书对应的签名 - 这步要保证你的应用签名和在华为联盟后台注册的指纹签名证书一致,请仔细检查。
走完这七步集成就结束了,对应的 Unity 结构:

然后调用推送初始化和打开 debug 模式。运行应用并查看初始化 log,系统要求 EMUI4.1 或往上,集成成功会在 log 中打印华为 token 信息。

扩展
除了上述集成方式,也可以在 AS 中新建 module 集成上述 jar 包,并打包成 aar 给 Unity 使用。极光的推送插件就是这样做的,所以可以直接下载极光插件源码,集成完直接统一打包成 aar 使用。
需要注意的是,已经是 aar 的文件无法打包,比如上述的华为通道中的 HMSSdk-agent.aar 无法打包进插件,还是得单独放在 plugin/android 下编译。
Unity 下集成第三方原生 SDK,以极光厂商通道为例的更多相关文章
- unity 引入 android第三方sdk
unity中调用java代码中介绍了unity调用android java代码的一些基础.引入android开发第三方sdk的操作跟调用java代码的操作相似,只是多了一步引入第三方jar. unit ...
- unity, 集成iOS广告sdk注意事项
----更新:2015-10-22 今天在unity里集成讯飞语音听写的iOS sdk,结果发现前面集成domob广告的方法搞复杂了. 其实,直接把UnityViewControllerBase当做s ...
- unity手游之聊天SDK集成与使用二
集成思路 如果是自己的小游戏的话,可以把好友等信息直接保存在亲加服务器上,通过调用api来操作. 我们游戏只使用sdk的通信功能,好友等信息保存在自己的服务器上. 用户在登陆游戏的时候,通过算法用用户 ...
- 使用cocoaPods一键集成第三方登录(新浪微博,qq,微信)
第三方登录是现在app很常用的功能,而这个功能我已经写过两三次了...每次都写大同小异的代码真的是很痛苦,而且每次都要根据说明去添加那些依赖库,配置linkFlag什么的,完全是体力活,所以一直想把这 ...
- cocos2d-x + Lua接入iOS原生SDK的实现方案[转]
相信很多朋友在使用cocos2d-x+lua开发游戏时都遇到过接入iOS原生SDK的问题,比如常见的接应用内支付SDK,广告SDK或是一些社交平台SDK等等,我也没少接过这类SDK.这篇文章主要是对我 ...
- Unity3d集成移动MM SDK 2.2的技术要点(坑爹的MM SDK)
原地址:http://dong2008hong.blog.163.com/blog/static/4696882720140423517951/ U3D集成移动MM的SDK绝对是以坑爹为主的东西. 浪 ...
- [原创]cocos2d-x + Lua接入iOS原生SDK的实现方案
相信很多朋友在使用cocos2d-x+lua开发游戏时都遇到过接入iOS原生SDK的问题,比如常见的接应用内支付SDK,广告SDK或是一些社交平台SDK等等,我也没少接过这类SDK.这篇文章主要是对我 ...
- Android中集成第三方库的方法和问题
Android中集成第三方库的方法和问题 声明: 1. 本文參考了网上同学们的现有成果,在此表示感谢,參考资料在文后有链接. 2. 本文的重点在第三部分,是在开发中遇到的问题及解决的方法.第一,第二部 ...
- Airtest,Poco,Unity自动化测试集成
作为一个Game Developer,测试部分是必不可少,程序完成需求首先要进行S0相关的测试,这样确保交付到策划验收和QA验收时是没有阻断性的bug或者显而易见代码缺陷.那么如何去做测试用例呢?肯定 ...
随机推荐
- PHP 将HTML转成PDF文件,HTML 转word,Word 转Html
html转 PDF 用MPDF ,Word转Html 纯PHP的方法暂未找到Word直接转PDF的方法 可以使用 LibreOffice 6.1 (Liunx,win) 皆可使用 Html转成PD ...
- python爬虫如何POST request payload形式的请求
python爬虫如何POST request payload形式的请求1. 背景最近在爬取某个站点时,发现在POST数据时,使用的数据格式是request payload,有别于之前常见的 POST数 ...
- 第七章 资源在Windows编程中的应用 P157 7-8
资源在基于SDK的程序设计中的应用实验 一.实验目的 1.掌握各种资源的应用及资源应用的程序设计方法. 二.实验内容及步骤 实验任务 1.熟悉菜单资源的创建过程: 2.熟悉位图资源的创建: 3.熟 ...
- [Training Video - 5] [Groovy Script Test Step - Collections, Exceptions] HashSet and Hashtable
Hashset: HashSet set = new HashSet() set.add("India") set.add("USA") set.add(&qu ...
- Mysql--关于数值字段的比较问题
今天在进行数据库查询的过程中,因为需要比较一条记录中两个字段的大小问题 select * from cyber_download_rate where measure_time between '20 ...
- Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果
目前Android的实现是:有来电时,音乐声音直接停止,铃声直接直接使用设置的铃声音量进行铃声播放. Android 4.3实现类似iOS在音乐播放过程中如果有来电则音乐声音渐小铃声渐大的效果. 如果 ...
- Android如何判断当前手机是否正在播放音乐,并获取到正在播放的音乐的信息
我想实现如下的场景,判断当前Android手机上是否正在播放音乐,如果是,通过某个特定的手势, 或者点击某个按键,将当前我正在听的音乐共享出去. 第一步,就是判断当前是否有音乐正在播放. 最开始我想得 ...
- Python + selenium + unittest装饰器 @classmethod
前言 前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,这样就会浪费很多时间. 于是就想是不是可以 ...
- [label][转载][web-design-psychology]网页设计心理
原文出处: http://mux.alimama.com/posts/1301 Tip1:信息不要同时全部展示,阶段性地向用户展示当前场景里必要的信息 设计师经常犯的错误:同时将大量信息展示给用户.不 ...
- jsp页面都放在web-inf下面说是要防止用户直接访问jsp页面,为么不能直接访问jsp
为了保护那部分jsp页面,如果没有登录验证,那部分jsp用户可以直接访问,这样很不安全,放在WEB-INF下面,就使得只能WEB-INF文件夹外jsp页面调用里面的jsp,这样来使用,就比如我们有一个 ...