微信Android終端SDK新手使用指南
1.申請你的AppID
請到 開發(fā)者應(yīng)用登記頁面 進(jìn)行登記,登記并選擇移動(dòng)應(yīng)用進(jìn)行設(shè)置后,將獲得AppID,可立即用于開發(fā)。但應(yīng)用登記完成后還需要提交審核,只有審核通過的應(yīng)用才能正式發(fā)布使用。
2.下載微信終端開發(fā)工具包
開發(fā)工具包主要包含3部分內(nèi)容:(其中,只有l(wèi)ibammsdk.jar是必須的)
- libammsdk.jar(每個(gè)第三方應(yīng)用必須要導(dǎo)入該sdk庫,用于實(shí)現(xiàn)與微信的通信)
- API文檔(供開發(fā)者查閱使用)
- 界面小工具源碼(封裝了界面表現(xiàn)的工具類,以及一些界面風(fēng)格)
3.搭建開發(fā)環(huán)境
[1] 在Eclipse中建立你的工程。
[2] 在工程中新建一個(gè)libs目錄,將開發(fā)工具包中l(wèi)ibs目錄下的libammsdk.jar復(fù)制到該目錄中(如下圖所示,建立了一個(gè)名為SDK_Sample 的工程,并把jar包復(fù)制到libs目錄下)。
[3] 右鍵單擊工程,選擇Build Path中的Configure Build Path...,選中Libraries這個(gè)tab,并通過Add Jars...導(dǎo)入工程libs目錄下的libammsdk.jar文件。(如下圖所示)。
在你需要使用微信終端API的文件中導(dǎo)入相應(yīng)的類。
import com.tencent.mm.sdk.openapi.WXTextObject;
4.在代碼中使用開發(fā)工具包
[1] 注冊到微信
要使你的程序啟動(dòng)后微信終端能響應(yīng)你的程序,必須在代碼中向微信終端注冊你的id。(如下圖所示,可以在程序入口Activity的onCreate回調(diào)函數(shù)處,或其他合適的地方將你的應(yīng)用id注冊到微信。注冊函數(shù)示例如下圖所示。
[2] 發(fā)送請求或響應(yīng)到微信
現(xiàn)在,你的程序要發(fā)送請求或發(fā)送響應(yīng)到微信終端,可以通過IWXAPI的 sendReq 和 sendResp 兩個(gè)方法來實(shí)現(xiàn)。
boolean sendReq(BaseReq req);
sendReq是第三方app主動(dòng)發(fā)送消息給微信,發(fā)送完成之后會(huì)切回到第三方app界面。
boolean sendResp(BaseResp resp);
sendResp是微信向第三方app請求數(shù)據(jù),第三方app回應(yīng)數(shù)據(jù)之后會(huì)切回到微信界面。
sendReq的實(shí)現(xiàn)示例,如下圖所示:
需要注意的是,SendMessageToWX.Req的scene成員,如果scene填WXSceneSession,那么消息會(huì)發(fā)送至微信的會(huì)話 內(nèi)。如果scene填WXSceneTimeline(微信4.2以上支持,如果需要檢查微信版本支持API的情況, 可調(diào)用IWXAPI的getWXAppSupportAPI方法,0x21020001及以上支持發(fā)送朋友圈),那么消息會(huì)發(fā)送至朋友圈。scene默認(rèn)值為WXSceneSession。
sendResp的實(shí)現(xiàn)與SendReq類似,如下圖所示:
具體要發(fā)送的內(nèi)容由第三方app開發(fā)者定義,具體可參考微信開發(fā)工具包中的SDK Sample Demo源碼。
[3] 接收微信的請求及返回值
如果你的程序需要接收微信發(fā)送的請求,或者接收發(fā)送到微信請求的響應(yīng)結(jié)果,需要下面3步操作:
a. 在你的包名相應(yīng)目錄下新建一個(gè)wxapi目錄,并在該wxapi目錄下新增一個(gè)WXEntryActivity類,該類繼承自Activity
(例如應(yīng)用程序的包名為net.sourceforge.simcpux,則新添加的類如下圖所示)
并在manifest文件里面加上exported屬性,設(shè)置為true,例如:
b. 實(shí)現(xiàn)IWXAPIEventHandler接口,微信發(fā)送的請求將回調(diào)到onReq方法,發(fā)送到微信請求的響應(yīng)結(jié)果將回調(diào)到onResp方法
c. 在WXEntryActivity中將接收到的intent及實(shí)現(xiàn)了IWXAPIEventHandler接口的對象傳遞給IWXAPI接口的handleIntent方法,示例如下圖:
當(dāng)微信發(fā)送請求到你的應(yīng)用,將通過IWXAPIEventHandler接口的onReq方法進(jìn)行回調(diào),類似的,應(yīng)用請求微信的響應(yīng)結(jié)果將通過onResp回調(diào)。
注意
如果需要混淆代碼,為了保證sdk的正常使用,需要在proguard.cfg加上下面兩行配置:
-keep class com.tencent.mm.sdk.openapi.WXMediaMessage {*;}
-keep class com.tencent.mm.sdk.openapi.** implements com.tencent.mm.sdk.openapi.WXMediaMessage$IMediaObject {*;}
至此,你已經(jīng)能使用微信Android開發(fā)工具包的API內(nèi)容了。如果想更詳細(xì)了解每個(gè)API函數(shù)的用法,請查閱 Android 平臺參考手冊 或自行下載閱讀微信SDK Sample Demo源碼。