Web微信API接口在安卓下的實現
what is it
chat.png
login.png
main.png
main2.png
tool.png
web微信api接口的封裝庫,在安卓上實現了web微信的大部分功能:諸如:個人微信號的登錄,好友獲取,消息收發,等等,借助這個庫你可以實現web微信的大部分功能。
what it can do
已經實現的功能如下:
1.個人微信號登錄
2.多種類型消息收取
3.文字消息發送
4.圖片消息發送
5.視頻消息發送
待實現的功能:
1.退出登錄
2.消息撤回
3.文件消息發送
how to use it
使用步驟較為簡單
庫:wechatutil
使用示例:app
第一步,初始化
public class MainApp extends Application {
private static WechatManager wechatManager;
@Override
public void onCreate() {
super.onCreate();
wechatManager=WechatManager.init(this);
}
public static WechatManager getWechatManager() {
return wechatManager;
}
}
第二步,在需要登錄的地方檢查登錄狀態,如果已經登錄則可以繼續下一步,否則獲取二位碼,進行登錄操作
public class WeChatLoginActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_we_chat_qr_code);
weChatLoginHelper =wechatManager.getLoginHelper();
weChatLoginHelper.syncCheck(new LoginHelper.SyncCheckListener() {
@Override
public void onReturn(boolean isSuccess,String selector) {
if (isSuccess){
//登錄狀態有效,不需要重新登錄
}else {
//登錄狀態無效,獲取二維碼,重新登錄
fetchQr();
}
}
});
}
private void fetchQr(){
weChatLoginHelper.login(new LoginHelper.LoginListener() {
@Override
public void onUUid(String uuid) {
//獲取到uuid,將使用uuid去獲取登錄用的二維碼
Glide.with(WeChatLoginActivity.this).load(urlManager.qrCodeUrl(uuid)).into(qrIv);
}
@Override
public void onSuccess() {
//手機掃描了二維碼,并點擊了登錄
onLoginSuccess();
}
@Override
public void onRefetchUUid() {
//二維碼已經超時,此時重新獲取uuid
}
@Override
public void onError(Throwable th) {
//其它異常情況
}
});
}
}
第三步,開始接收消息
MainApp.getWechatManager().getMsgHelper().startCheckMsg();
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(AddMsgList message) {
String fromName = message.getFromUserName();
//對消息進行解析并處理
}
好友列表接口:
loginHelper.getBaseInfo().getContactList(); //獲取最近聊天好友列表
loginHelper.getContacts();//獲取所有好友
消息接口:
msgHelper.sendTextMsg(messageInfo, contact,new MsgHelper.SendMsgListener(){
@Override
public void onSended(boolean isSuccess, String result, MessageInfo msgInfo) {
if (isSuccess) {
//發送成功
msgInfo.setSendState(Constants.CHAT_ITEM_SEND_SUCCESS);
} else {
//發送失敗
msgInfo.setSendState(Constants.CHAT_ITEM_SEND_ERROR);
}
chatAdapter.notifyDataSetChanged();
}
});
msgHelper.sendVideo(messageInfo, contact,listener);
msgHelper.sendImage(messageInfo, contact,listener);
如何擴展
1.優化消息解析,對類com.donute.wechat.utils.MessageParser進行補充完善即可。
2.所有接口的url地址,可在類com.donute.wechat.helpers.UrlManager中找到
3.消息類型定義可在com.donute.wechat.beans.msg.MsgType中找到
感謝
使用示例使用了:https://github.com/Rance935/ChatUI
接口地址及格式參考了:https://github.com/littlecodersh/ItChat