天天看點

微信Android接入指南

注:本文為微信Android終端開發工具的新手使用教程,隻涉及教授SDK的使用方法,預設讀者已經熟悉IDE的基本使用方法(本文以Eclipse為例),以及具有一定的程式設計知識基礎等。

請到 開發者應用登記頁面 進行登記,登記并選擇移動應用進行設定後,将該應用送出稽核,隻有稽核通過的應用才能進行開發。

開發工具包主要包含3部分内容:(其中,隻有libammsdk.jar是必須的)

- libammsdk.jar(每個第三方應用必須要導入該sdk庫,用于實作與微信的通信)

- API文檔(供開發者查閱使用)

- 界面小工具源碼(封裝了界面表現的工具類,以及一些界面風格)

下載下傳: 

[eUrban:1] 在Eclipse中建立你的工程。

[eUrban:2] 在工程中建立一個libs目錄,将開發工具包中libs目錄下的libammsdk.jar複制到該目錄中(如下圖所示,建立了一個名為SDK_Sample 的工程,并把jar包複制到libs目錄下)。 

[eUrban:3] 右鍵單擊工程,選擇Build Path中的Configure Build Path...,選中Libraries這個tab,并通過Add Jars...導入工程libs目錄下的libammsdk.jar檔案。(如下圖所示)。 

在你需要使用微信終端API的檔案中導入相應的類。import com.tencent.mm.sdk.openapi.WXTextObject;

[eUrban:1] 注冊到微信

要使你的程式啟動後微信終端能響應你的程式,必須在代碼中向微信終端注冊你的id。(如下圖所示,可以在程式入口Activity的onCreate回調函數處,或其他合适的地方将你的應用id注冊到微信。注冊函數示例如下圖所示。 

[eUrban:2] 發送請求或響應到微信

現在,你的程式要發送請求或發送響應到微信終端,可以通過IWXAPI的 sendReq 和 sendResp 兩個方法來實作。boolean sendReq(BaseReq req);

sendReq是第三方app主動發送消息給微信,發送完成之後會切回到第三方app界面。boolean sendResp(BaseResp resp);

sendResp是微信向第三方app請求資料,第三方app回應資料之後會切回到微信界面。

sendReq的實作示例,如下圖所示: 

需要注意的是,SendMessageToWX.Req的scene成員,如果scene填WXSceneSession,那麼消息會發送至微信的會話内。如果scene填WXSceneTimeline(微信4.2以上支援,如果需要檢查微信版本支援API的情況, 可調用IWXAPI的getWXAppSupportAPI方法,0x21020001及以上支援發送朋友圈),那麼消息會發送至朋友圈。scene預設值為WXSceneSession。

sendResp的實作與SendReq類似,如下圖所示: 

具體要發送的内容由第三方app開發者定義,具體可參考微信開發工具包中的SDK Sample Demo源碼。

[eUrban:3] 接收微信的請求及傳回值

如果你的程式需要接收微信發送的請求,或者接收發送到微信請求的響應結果,需要下面3步操作:

a. 在你的包名相應目錄下建立一個wxapi目錄,并在該wxapi目錄下新增一個WXEntryActivity類,該類繼承自Activity(例如應用程式的包名為net.sourceforge.simcpux,則新添加的類如下圖所示) 

并在manifest檔案裡面加上exported屬性,設定為true,例如: 

b. 實作IWXAPIEventHandler接口,微信發送的請求将回調到onReq方法,發送到微信請求的響應結果将回調到onResp方法

c. 在WXEntryActivity中将接收到的intent及實作了IWXAPIEventHandler接口的對象傳遞給IWXAPI接口的handleIntent方法,示例如下圖: 

當微信發送請求到你的應用,将通過IWXAPIEventHandler接口的onReq方法進行回調,類似的,應用請求微信的響應結果将通過onResp回調。

注意

如果需要混淆代碼,為了保證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 {*;}

至此,你已經能使用微信Android開發工具包的API内容了。