Quickblox JS SDK notifyOccupants 创建对话框
Posted
技术标签:
【中文标题】Quickblox JS SDK notifyOccupants 创建对话框【英文标题】:Quickblox JS SDK notifyOccupants on dialog creation 【发布时间】:2016-07-19 13:05:40 【问题描述】:我使用此代码从http://quickblox.com/developers/javascript 检索。
我的 SDK 信息:/* QuickBlox JavaScript SDK - v2.1.4 - 2016-07-19 */
function notifyOccupants(dialogOccupants, newDialogId)
dialogOccupants.forEach(function(itemOccupanId, i, arr)
if (itemOccupanId != currentUser.id)
var msg =
type: 'chat',
extension:
notification_type: 1,
_id: newDialogId,
,
;
QB.chat.send(itemOccupanId, msg);
);
当我执行这个函数时,它总是返回:
"quickblox.min.js:7 Uncaught TypeError: Cannot read property 'send' of undefined".
有人可以帮忙吗?
【问题讨论】:
【参考方案1】:正如他们的tutorial 所说, 您必须先初始化 QB 对象才能使用它。
确保您的代码中有以下行:
QB.createSession(login: user.login, password: user.pass, function(err, res)
if (res)
QB.chat.connect(userId: user.id, password: user.pass, function(err, roster)
并检查您的代码是否在 connect
函数回调中,
确保您的代码仅在 QB 初始化后运行。
【讨论】:
我使用这个 QB.init(data.token, quickblox.appId) 初始化了 quickblox,我在我的服务器中创建了 quickblox 用户会话,并确保存在一个会话。在我调用成功后创建一个新对话框。【参考方案2】:我的代码:
var usersIds = [];
usersIds.push(user);
var params =
type: 3,
occupants_ids: usersIds
;
console.log("Creating a dialog with params: " + JSON.stringify(params));
QB.chat.dialog.create(params, function (err, createdDialog)
if (err)
console.log(err);
errorCallback();
else
console.log("Dialog " + createdDialog._id + " created with users: " + usersIds);
// save dialog to local storage
var dialogId = createdDialog._id;
QuickbloxConfig.dialogs[dialogId] = createdDialog;
QuickbloxConfig.currentDialog = createdDialog;
//
// self.joinToNewDialogAndShow(createdDialog);
self.notifyOccupants(createdDialog.occupants_ids, createdDialog._id, 1);
//self.triggerDialog(createdDialog._id);
successCallback();
);
只有在我调用 self.notifyOccupants(createdDialog.occupants_ids, createdDialog._id, 1); 时才会失败
【讨论】:
你在哪里设置self
?
我的应用在 angularjs 上,我创建了一个服务,我使用 var self = this;访问服务中的其他功能。
您确定QB.chat.connect
已经完成且没有错误吗?
我的步骤: - QB.init(token, quickblox.appId);如果我用令牌初始化,我有这个“QB.chat.connect(userId: user.id, password: user.pass, function (err, roster)”调用?我试试这个,但我收到:angular。 js:11270 TypeError: 无法读取未定义的属性“连接”以上是关于Quickblox JS SDK notifyOccupants 创建对话框的主要内容,如果未能解决你的问题,请参考以下文章
无法解决:com.quickblox:quickblox-android-sdk-chat:2.6.1
QBRoomChatManager 类在以后的 Quickblox 库中不存在 - quickblox-sdk-release-2
使用 QuickBlox JavaScript SDK 的问题