Releases: zeeklog/react-native-wechat-v2
Releases · zeeklog/react-native-wechat-v2
🐛 Fix openCustomerServiceChat Error.
Issues #1
Fix: 在原生层实现缺少的调用微信客服会话API
Wechat.mm
// 打开微信客服会话,需要 SDK 1.9.2+,需在微信客服官网完成 appid 与企业 id 绑定
RCT_EXPORT_METHOD(openCustomerServiceChat:(NSString *)corpId
url:(NSString *)url
:(RCTResponseSenderBlock)callback)
{
if (!corpId || corpId.length == 0 || !url || url.length == 0) {
callback(@[@"invalid argument."]);
return;
}
WXOpenCustomerServiceReq *req = [[WXOpenCustomerServiceReq alloc] init];
req.corpid = corpId;
req.url = url;
void ( ^ completion )( BOOL );
completion = ^( BOOL success )
{
callback(@[success ? [NSNull null] : INVOKE_FAILED]);
return;
};
[WXApi sendReq:req completion:completion];
}
WeChatModule.java
/**
* 打开微信客服会话
* 需要微信 SDK 6.7.9+,需在微信客服官网完成 appid 与企业 id 绑定
*
* @param corpId 企业 ID
* @param url 客服 URL,格式:https://work.weixin.qq.com/kfid/kfcxxxxx
* @param callback 回调
*/
@ReactMethod
public void openCustomerServiceChat(String corpId, String url, Callback callback) {
if (api == null) {
callback.invoke(NOT_REGISTERED);
return;
}
if (corpId == null || corpId.isEmpty() || url == null || url.isEmpty()) {
callback.invoke(INVALID_ARGUMENT);
return;
}
try {
WXOpenCustomerServiceChat.Req req = new WXOpenCustomerServiceChat.Req();
req.corpId = corpId;
req.url = url;
boolean success = api.sendReq(req);
callback.invoke(success ? null : INVOKE_FAILED);
} catch (Exception e) {
callback.invoke(e.getMessage() != null ? e.getMessage() : INVOKE_FAILED);
}
}