类和开放接口

优质
小牛编辑
121浏览
2023-12-01

BQMM.java

Android SDK核心文件

  • 获得BQMM实例
BQMM.getInstance()
  • 注册appId和appSecret,初始化配置。
initConfig(Context mContext, String appId, String appSecret)
  • 手动调用SDK初始化方法。
load()
  • 获得编辑输入控件,返回一个Bqmm_Editview对象。
getEditView()
  • 设置编辑输入控件。
setEditView(BQMMEditView editView)
  • 获得消息发送按钮控件。
getSendButton()
  • 设置消息发送按钮。
setSendButton(Bqmm_SendButton sendButton)
  • 设置消息数据解析器,如不设置,默认使用DefaultMessageParser
setMessageParser(IMessageParser messageParser)
  • 获取消息数据解析器。
getMessageParser()
  • 获取表情键盘,返回BQMMKeyboard的一个实例。
getKeyboard()
  • 设置表情键盘和点击键盘底部gif按钮回调接口。
setKeyboard(bqmmKeyboard, new IGifButtonClickListener() {
    @Override
    public void didClickGifTab() {
    }
});
  • 通过表情code获取表情。callback是查询结果回调监听。
fetchEmojiByCode(Context context,String code ,final IFetchEmojiByCodeCallback callback)
  • 通过表情code批量获取表情。callback是查询结果回调监听。
fetchEmojiByCodeList(Context context,List<String> codelist,final IFetchEmojisByCodeListCallback callback)
  • 表情键盘是否打开。返回isKeyboardOpen
isKeyboardOpen()
  • 设置表情键盘打开关闭状态。注意此方法只修改状态,不会实际打开或关闭键盘。
setKeyboardOpen(boolean isKeyboardOpen)
  • 关闭SDK,建议在Activity.onDestroy方法中调用
destroy()
  • 设置表情发送回调监听。
setBqmmSendMsgListener(IBqmmSendMessageListener onBqmmSendMsgListener)
  • 设置当前App用户的userId,以便后端统计特定用户表情使用习惯。(可选)
setAppUserID(String appUserID)
  • 设置SDK界面的语言。目前有中文(BQMM.LANGUAGE_CONSTANTS.CH)和英文(BQMM.LANGUAGE_CONSTANTS.CH)两种选择,默认为中文。
setLanguage(String language)
  • 自定义Unicode表情在SDK中展示出的图片(可选)。
setUnicodeEmojiProvider(IBQMMUnicodeEmojiProvider provider)
  • 自定义键盘中显示的小表情集合(可选)。unicodes 数组中传入的是要显示在键盘中每个表情的Unicode编号。大部分Unicode字符都用一个编号表示,在数组的对应个位置放入int即可,对于极少数用两个编号表示的字符(各国国旗),就需要放入int[]。
setDefaultEmojiSet(Object[] unicodes)
  • 自定义Unicode表情tab在键盘底部tab栏展示的缩略图。
setUnicodeEmojiTabIconProvider(IBQMMUnicodeEmojiTabIconProvider provider)
  • 流行gif数据接口(sdk2.0.0版本新增接口)
/**
* 异步返回trending结果
* @param page 页码
* @param pageSize 一页的数量
* @param callback 
*/
trendingGifsAt(int page, int pageSize, final IBQMMGifCallback<BQMMGif> callback)
  • 搜索gif数据接口(sdk2.0.0版本新增接口)
/**
* 异步返回搜索结果
*
* @param text 搜索关键词
* @param page 页码
* @param pageSize 一页的数量
* @param callback 
*/
public static void searchGifsWithKey(String text, int page, int pageSize, final IBQMMGifCallback<BQMMGif> callback)
  • 清空gif缓存接口(sdk2.0.0版本新增接口)
/**
 * @param isClearAll 为true清空全部gif缓存,false清空最近访问的100个gif之外的缓存。
 */
clearBQMMGifCache(final boolean isClearAll)

Emoji.java

说明:表情对象

  • 获取/设置表情的唯一识别号的
public int getGuid() 
public void setGuid(int id)
  • 获取/设置表情内容
public String getEmoText()
public void setEmoText(String emoText)
  • 获取/设置表情代码
public String getEmoCode() 
public void setEmoCode(String emoCode)
  • 获取/设置表情缩略图地址
public String getThumbail() 
public void setThumbail(String thumbail)
  • 获取/设置表情地址
public String getMainImage()
public void setMainImage(String mainImage)
  • 获取所属表情包编号
public String getPackageId() 
public void setPackageId(String packageId)
  • 获取/设置表情本地缓存地址,未下载时返回为空
public String getPathofImage()
public void setPathofImage(String pathofImage)
  • 获取/设置表情缩略图本地缓存地址,表情未下载时返回为空
public String getPathofThumb()
public void setPathofThumb(String pathofThumb)
  • 获取Emoji的serialVersionUID
public static long getSerialVersionUID()
  • 是否默认表情
public String getIsDefaultEmoji()
public void setIsDefaultEmoji(String isDefaultEmoji)
  • 是否小表情
public boolean getIsEmoji() 
public void setIsEmoji(boolean isEmoji)

IFetchEmojiByCodeCallback.java

说明:下载表情完成后的回调

  • 下载成功后的回调
onSuccess(Emoji emoji)
  • 下载失败后的回调
onError(Throwable t)

IFetchEmojisByCodeListCallback.java

说明:批量下载表情的回调

    • 下载成功后的回调
onSuccess(List<Emoji> emojis)
  • 下载失败后的回调
onError(Throwable t)

IBQMMUnicodeEmojiProvider.java

说明:实现这个接口的类,可以为SDK提供展示Unicode表情的图片。

  • 根据收到的Unicode Code Point,返回对应的Drawable或者null(表示该Code Point没有对应的图片)
Drawable getDrawableFromCodePoint(int codePoint);

IBQMMUnicodeEmojiTabIconProvider

说明:实现这个接口的类,可以为表情键盘的Unicode表情tab提供缩略图,展示在键盘底部的tab列表中。

Drawable getIcon();

BQMMSendButton.java

说明:消息发送按钮,继承自android.widget.Button

BQMMEditView.java

说明:消息输入控件,继承android.widget.EditText

  • 设置Emoji相对于普通字符显示大小的比例(仅对IBQMMUnicodeEmojiProvider提供了图片的Emoji有效)。
setUnicodeEmojiSpanSizeRatio(float ratio)
  • 设置与自定义Emoji展示图片相冲突的Span类。为了实现将IBQMMUnicodeEmojiProvider提供的图片显示在文本框里,SDK给文本框中对应的文字设置了Span。当用户想要自己设置一些Span时,可能会和SDK设置的Span形成冲突,这时就可以将准备自行设置到文字中去的Span类型用此方法告诉文本框,SDK会在设置Span时跳过它们。
setConflictSpanClasses(Class[] classes)

BQMMKeyboard.java

说明:表情键盘控件,继承android.widget.RelativeLayout

IBqmmSendMessageListener.java

说明:表情消息发送监听接口。

  • 发送单个表情
onSendFace(Emoji face)
  • 发送图文混排消息
onSendEmoji(List&lt;Object&gt; emojis)

BQMMPopupViewTask.java

说明:在指定View上弹出联想表情View

  • 构建方法
BQMMPopupViewTask.create(context)
  • 设置PopWindow的相对View
public void setPopupView(View parent)
  • 设置关联的EmojiText
public void setEmojiEmoText(String emoText)

BQMMMessageText.java

说明:消息显示视图。可以用于展示文本消息、表情消息和Gif消息。

  • 带style的构造函数。用于在代码中实例化时指定文本的样式。
public BQMMMessageText(@NonNull Context context, @StyleRes int textStyle)
  • 在实例化之后指定文本样式。
public void setTextTheme(@StyleRes int resId)
  • 设置大表情图片显示大小。
public void setStickerSize(int size)
  • 设置小表情图片显示大小。
public void setEmojiSize(int size)
  • 显示消息。msgTextString是该消息的文本表达(当错误发生时,该文本可以作为一个备选方案)。msgTypeBQMMMessageText.FACETYPEBQMMMessageText.EMOJITYPE之一,代表了该消息应该以大表情还是图文混排的方式显示。msgData是以标准JSON形式表达的消息,含有包括文字和表情的全部信息。
public void showMessage(String msgTextString, String msgType, JSONArray msgData)
  • 显示Gif消息。isGif参数只有两种取值,1代表是Gif格式动图,0代表是静态图片。
public void showBQMMGif(String dataId, String stickerUrl, int stickerWidth, int stickerHeight, int isGif)
  • 设置Emoji相对于普通字符显示大小的比例(仅对IBQMMUnicodeEmojiProvider提供了图片的Emoji有效)。
public void setUnicodeEmojiSpanSizeRatio(float ratio)
  • 设置与自定义Emoji展示图片相冲突的Span类。描述见BQMMEditView中的同名方法。
public void setConflictSpanClasses(Class[] classes)

BQMMMessageHelper.java

说明:默认表情消息格式辅助类。

  • 从带有[emojiCode]的文本消息中,解析EmojiString列表的方法。参数emojis
/**
 * 
 * @param message
 *           eg "你好,[smile][lol]你好"
 * @return List<Object>
 *              eg "你好, " Emoji Emoji "你好"
 */
public static List<Object> parseMixedMsg(String message, List<Emoji> emojis)
  • 将表情消息转成String
/**
 *
 *  @param List<Object> 
 *         eg "你好, " Emoji Emoji "你好"
 *  @return String
 *         eg 你好,[smile][lol]你好
 */
public static String parseMixedMsgToString(List<Object> messageContent)
  • 解析富文本Msg
/**
 * 解析富文本Msg
 * @param msg_data
 *            eg msg_data=[["你好,","0"],["smile","1"],["lol","1"],["你好","0"]]
 * @return eg List<Object> 
 *               eg "你好, ", Emoji, Emoji, "你好"
 */
public static List<Object> parseMixedMsgData(JSONArray msgData)
  • 是否是富文本内容
/**
 * 是否是富文本内容
 * @param messageContent
 * @return 
 */
public static boolean isMixedMessage(List<Object> messageContent)
  • 获得消息中的emojiCode列表
/**
 *  
 * @param messageContent
 * eg List<Object> "你好, " Emoji Emoji "你好"
 * @return List<String>
 * eg ["smile","lol"]
 */
public static List<String> findEmojiFormMixedMsg(List<Object> messageContent)
  • 解析单个大表情Msg
/**
 * 解析单个大表情Msg
 * 
 * @param msgData
 * eg msg_data=[["txbypl","1"]]
 * @return List<String> 
 * eg [txbypl]
 */
public static List<String> parseFaceMsgData(JSONArray msgData)
  • 获取混排表情的JSONArray消息格式
/**
 *  获取混排表情的JSONArray消息格式
 *  @param List<Object>
 *  eg "你好, " Emoji Emoji "你好"
 *  @return JSONArray
 *  eg [["你好,","0"],["smile","1"],["lol","1"],["你好","0"]]
 */
public static JSONArray getMixedMessageData(List<Object> content)
  • 获取大表情的JSONArray消息格式
/**
 * 获取大表情的JSONArray消息格式
 * @param Emoji 
 * @return JSONArray [["smile,","1"]]
 */
public static JSONArray getFaceMessageData(Emoji face)