易信Android平台SDK使用新手指南

本文将介绍SDK的使用。如果你想详细的了解每个API用法,请查阅

API文档 或下载阅读

易信SDK Sample 源码。

一、准备

1. 下载易信客户端,并注册一个易信帐号。

2. 使用易信帐号登录开放平台,转到应用管理页面,添加一个新应用。

3. 填写你的应用资料,完成后保存,你会获得一个AppID。

4. 提交审核,只有审核通过的应用才可用于开发。

审核通过的应用在内容来源处显示你登记时填写的应用名称。否则显示“未审核应用”。

二、下载Android开发工具包

开发工具包主要包含两部分内容:(其中,只有yixin_thridpart_app_sdk_v*.jar是必需的)

yixin_thridpart_app_sdk_v*.jar(每个第三方应用必须要导入该sdk库,用于实现与易信的通信)

yixin_thirdpard_app_sdk_doc_v*.zip(yixin_thridpart_app_sdk_v*.jar 的JavaDoc文档)

您也可以下载易信第三方APP接入的DEMO程序:点击这里下载范例代码

三、将SDK导入你的项目

1. 在工程中新建一个libs目录,将开发工具包中libs目录下的yixin_thridpart_app_sdk_v*.jar复制到该目录中,如下图所示。

请将yixin_thridpart_app_sdk_v*.jar以java lib的形式导入到您的android app工程。

易信java_新手指南-易信开放平台-编程知识网

2. 右键单击工程属性页Properties,选择Java Build Path中的Libraries这个tab,查看是否已引用yixin_thridpart_app_sdk_v*.jar。如未引用则通过Add JARS…导入yixin_thridpart_app_sdk_v*.jar文件。如下图所示。

易信java_新手指南-易信开放平台-编程知识网

四、如何在代码中使用开发工具包

在Android平台上,易信APP和您的APP之间通信分为以下四种场景,您的APP只要相应配置这四种场景的响应代码即可。

说明:APP之间基本的通信接口都是通过接口IYXAPI的单例实现类进行,该单例由工厂YXAPIFactory的静态方法createYXAPI(Context

paramContext, String paramAppId)负责创建,参数为context和易信开放平台分配的AppID,这两个参数都不能为空,该创建方法可以重复调用,IYXAPI的实现类只会以单例模式创建一次,

并绑定到第三方APP的系统上下文applicationContext上。

同时,需要在您的AndroidManifest.xml文件加上下面2项permission:

1. 第三方APP启动时向易信注册

任何接入易信的第三方APP,在启动时需要向易信APP注册自己的AppID,即主动把您的Android

APP的AppID以广播消息通知给易信APP。考虑到有可能第三方APP会先于易信启动,还需要配置一个易信启动通知的接收者BroadcastReceiver子类,用来接收易信APP的启动通知,并主动进行注册,具体如下:

第三方APP创建一个继承自im.yixin.sdk.api.YXAPIBaseBroadcastReceiver的BroadcastReceiver子类,并实现如下方法:

protected String getAppId()

用来返回第三方APP的AppID。如果第三方APP还需要在易信启动时处理其他相关的业务,可以重载并实现父类的如下回调方法,该方法在父类中默认实现为空:

protected void onAfterYixinStart(final YXMessageProtocol protocol)

完成以上代码的编写之后,需要把该BroadcastReceiver配置到第三方APP的AndroidManifest.xml中,具体如下:

易信java_新手指南-易信开放平台-编程知识网

同时,您的Android app启动时,需要调用接口IYXAPI的单例中的注册方法:

boolean registerApp()

向易信进行主动注册,只有在提供非法的AppID或没有安装易信App的情况下,才会返回false,其他情况均返回true。不过您的APP对该返回值可以不作任何处理。

综上,注册通信模块需要第三方Android App:

在AndroidManifest.xml中配置一个自定义的YXAPIBaseBroadcastReceiver子类;

在app启动时调用registerApp()进行注册;

2. 第三方APP发送分享内容到易信

第三方APP通过调用IYXAPI的sendRequest方法发送分享内容到易信:

Boolean sendRequest(BaseReq paramBaseReq);

对于各种类型的内容,如文字,图文,音乐,视频等等,都有对应的BaseReq子类,只要第三方APP按照API文档中的接口数据规范,填上对应的数据进行调用即可。

sendRequest 的实现示例,如下图所示:

易信java_新手指南-易信开放平台-编程知识网

3. 接收来自易信的请求和响应

如果你的Android App需要接收易信App发送的请求,或者接收发送到易信App请求的响应结果,需要下面2步操作:

【第一步】在你的Android

App的package对应的目录下新建一个yxapi子包(其中package是指您配置在AndroidManifest.xml中的系统package属性),并在该yxapi目录下新增一个必须名为YXEntryActivity类,因为该响应Activity(YXEntryActivity)配置的时候必须name=".yxapi.YXEntryActivity",

同时YXEntryActivity必须继承自BaseYXEntryActivity。

(例如应用程序的包名为im.yixin.sdksample,则新添加的类如下图所示)

易信java_新手指南-易信开放平台-编程知识网

并在AndroidManifest.xml文件里面加上exported属性,设置为true。如果您的App是横屏,则YXEntryActivity需要配置转屏属性来支持易信竖屏:android:configChanges="keyboardHidden|orientation|screenSize"。

易信java_新手指南-易信开放平台-编程知识网

【第二步】YXEntryActivity必须实现父类BaseYXEntryActivity的3个接口,具体如下:

protected IYXAPI getIYXAPI()

返回根据AppID创建的IYXAPI单例

public void onReq(BaseReq req);

易信主动发送请求到第三方APP时,易信调用第三方APP的此函数。该函数由父类BaseYXEntryActivity的onCreate或者onNewIntent进行调用。

public void onResp(BaseResp resp);

易信响应第三方APP的请求时,易信调用第三方APP的此函数。第三方APP通过sendRequest分享内容到易信,易信处理完毕后调用此函数。该函数由父类的onCreate或者onNewIntent进行调用。

【建议】如果第三方APP有一些界面初始化的公共逻辑,可以单独写一个函数,由onReq和onResp负责调用。

4. 内容详情页展现方式

用户在易信会话中点击分享消息时,易信打开由第三方APP提供的内容详情页,以下是各类别详情页的展现方式:

Text 数据无详情页

Image 数据中如果有imageUrl数据,用户点击详情时,跳转到这个URI定义的webview

Music

数据中如果有musicUrl或musicLowBandUrl的数据,用户点击详情时,如果用户在WIFI条件下,优先跳转到musicUrl这个URI定义的webview,在非WIFI条件下,优先跳转到musicLowBandUrl这个URI定义的webview

Video

数据中,用户点击详情时,如果用户在WIFI条件下,优先跳转到videoUrl这个URI定义的webview,在非WIFI条件下,优先跳转到videoLowBandUrl这个URI定义的webview。

WebPage 数据中,用户点击详情时,跳转到webPageUrl定义的webview中

易信打开指定页面的时候,会在原链接后加上参数isappinstalled,标识第三方APP是否安装,即http://xxxx/?isappinstalled=[1|0],1为已安装,0为未安装。

注意!

1. 如果您更改过Android的签名数据,审核通过后,发现无法进行分享。一般是本机缓存的问题,可以测试查看其他机器中的显示情况,本机删除易信和该应用后重新安装即可解决。

2. 如果需要混淆代码,为了保证sdk的正常使用,需要在proguard.cfg加上下面两行配置:

-keep class im.yixin.sdk.api.YXMessage {*;}

-keep class im.yixin.sdk.api.** implements im.yixin.sdk.api.YXMessage$YXMessageData{*;}

3. 如果您测试用的app签名和发布后的app签名不一致, 建议您先用app的测试签名在开放平台进行注册, 等测试通过后再修改成APP的发布签名,并提交审核。

4. 处理横屏app打开易信分享的页面转屏问题。其中易信分享对话框所在页面半透明,对横屏app的页面会强制转竖屏,导致背景页面显示错误。具体参考demo的SendToYXActivity#onConfigurationChanged接口实现。

易信java_新手指南-易信开放平台-编程知识网