安卓混合推送升级|二月刊

产品动态

游戏解决方案(Play)

二月份我们的游戏服务迎来了更多的开发者,同时也经历了他出生之后的第一次春节流量考验,虽然出现了临时扩容的紧张与慌乱,但所幸结果一切顺利,没有在全国人民面前掉链子,也让我们倍感欣慰。

实时对战 JavaScript SDK 支持 Promise 方式

前两天我们发布了 JavaScript SDK v0.18.0 正式版本,将异步调用的处理方式进行了一次升级,在原来的事件回调基础上,增加了 Promise 方式。例如在老版本 SDK 里用户连接至实时对战服务器的过程为:

// 发起请求
client.connect();

// 响应连接成功事件
client.on(Event.CONNECTED, () => {
  console.log('on joined lobby');
});

现在可以直接这样实现:

client.connect().then(()=> {
  // 连接成功
  console.log('on joined lobby');
}).catch((error) => {
  // 连接失败
    console.error(error.code, error.detail);
});

新版本完全遵循 ES6 Promises 标准,相信可以让大家开发起来更加方便。

游戏开发教程

应广大开发者的要求,我们工程师小姐姐还专门录制了四期直播课程,介绍游戏开发中的一些小窍门,有兴趣的朋友可以访问官网的学习页面或通过以下地址直接观看:

安卓混合推送升级

华为 HMS 推送增加 IntentUri 支持

对于华为的 HMS 推送,之前我们支持的版本缺少通知栏点击的自定义动作支持(推送请求的 IntentUri 参数),本月我们服务端上线了这一功能,现在开发者使用 v4.7.0 以上版本的混合推送 SDK,就可以使用这一功能,具体用法可以参考文档:HMS 推送接入指南

新功能预告

我们计划在 3 月份增加对 VIVO 推送支持,但是因为我们自己客户端数量有限,怕测试不完全,所以我们会推出一个 early-bird 版本,邀请大家参与前期测试。欢迎感兴趣的开发者通过发送邮件或者在项目 repo 下直接报名参与,谢谢。

Share

使用 Leancloud 实现 React Native App 的消息推送 - Android 篇

在 React Native 开发过程中征服的一个小小领域:消息推送。

【游戏开发】如何实现手游中的账户系统

这篇文章以 Unity 游戏引擎中的 C# 语言为示例,主要讲解如何实现几种主流的登录方式,包括游客登录、游客账号升级、手机号验证码登录、用户名密码注册及登录。

常见问题

【存储】怎么存储和获取音频/视频文件的时长 ?

AV.File 的 metaData 属性,可以用来保存和获取该文件对象的元数据信息。可以在上传音频文件时获取音频长度然后通过 metaData 方法手动添加文件时长。

【即时通信】对话查询如何区分单聊还是群聊?

SDK 层面不区分单聊和群聊。可以使用会话的成员数量做区分。「会话成员数量为 2」即是单聊,大于 2 即可看作群聊。

【即时通信】语音消息如何标记消息是否已经播放,类似微信语音消息标记是否已读的小红点,可以提供一些思路吗?

因为一个群里可能有很多人,每个人对一条消息都有一个「是否已播放」的状态,所以建议在客户端维护这个「未播放」状态。

做法之一是可以在客户端维护一个「收到了但是没有播放的音频文件」列表,然后拿到消息文件对比一下客户端是否已经播放过。

【即时通信】使用 where 查询条件查询某用户的会话列表,为什么查询结果是系统内所有用户的会话?

当没有添加任何 where 查询条件时,query 会使用默认查询条件 where={"m":{"$in":["client ID"]}},即查询成员含有此 client ID 的对话;当添加了任意 where 查询条件时,query 会严格按 where 条件来查询,即覆盖默认的 where 查询条件。

以 Objective - C 举例,添加了自定义的 where 查询条件时,如果想查询含有此 client ID 的对话,使用 [query whereKey:@"m" containedIn:@[@"client ID"]] 增加一个查询条件即可。

评论

Loading comments ...