微信開放平臺-以你之名貫我之心

      最近Boss說來搞一搞微信的開放平臺,在兼顧內網的同時,雖然文檔管理系統即將上線,但是order is order,所以百忙之中忙中抽閒,說搞就搞,我要做自己的leader!廢話少說,直接上圖,希望讓自己學的更加深刻。

一、申請自己的AppID

      

 

 

二、填寫應用名稱,寫上自己的包名以及應用描述

        

 

 

三、獲取程序簽名的md5值,此前要先將你的應用程序進行簽名操作之後再安裝到你的手機上(htc與huawei親測,無障礙)

         

 

 

四、以下是效果展示:(希望兄弟夥伴們能相互交流學習)

               

                                                          以上是安裝過程

                                                          

 

  
                                                          進入界面,先將app註冊到微信,然後在微信裏面添加你的app應用
                                                           
                                                          在這裏點擊附加到微信

                                                          

                                                          此時已經附加到微信,此刻點擊app應用即可進行操作:

 

                                                          發送文本:支持長文本與短文本

                                                          

                                                          發送圖片:支持二進制數據、本地路徑與圖片的URL,這裏展示圖片的二進制數據

                                                          

                                                          發送音樂:支持音樂URL與低寬帶音樂URL

                                                         

                                                          發送視頻:支持視頻URL與低寬帶視頻URL

                                                          

                                                          發送網頁:借用一句話,只要給我一個URL,我便能玩轉整個web世界

                                                         

                                                          效果截圖:

                  

                                                                                             朋友圈分享

                   

                                                                                              好友分享

            

 

 
 

五、一點點小貼士:

  1、註冊是本地註冊,且只需要註冊一次,但是在發送的時候微信服務器會檢測第三方應用的合法性

  2、說白了就是在本地第三方應用將要發送的內容先發給微信進程,微信進程收到後再將消息發給自己的微信好友

  3、卸載或者反註冊後,第三方應用將不會出現在本機微信的可添加應用列表中

  4、使用微信開放平臺發送的媒體對象中,網頁,音頻和視頻只能是網絡URL,圖片可發送本地路徑,本地字節數據,網絡URL,文件可以發送本地字節數據和本地路徑,附帶在媒體對象中的字節數組,微信默認會是點擊則給出下載界面,下載後存儲的路徑是在/sdcard/Tecent/MicroMsg/本機微信帳號(一般是一串字母數字的組合體)/attachment文件夾下,這個路徑不需要自己去記錄,微信會在媒體對象的filepath字段中記錄,此時一定注意的是當你響應微信的show請求時,媒體對象中的filedata字段是爲空的,即使你在發送的時候附帶在了這個字段中,如前面所說,只能用filepath這個字段。

如果要自行處理只能是appdata類型數據,理由下面給出

appdata類型的對象唯一特殊點就只是告訴微信這個消息點擊時需要調用第三方應用,而其他類型的媒體對象被點擊時所顯示的是微信的默認頁面

  5、微信根據transaction字段決定消息在聊天框中的表現以及點擊後的響應,只有appdata被點擊時可以調用第三方應用的進程,所觸發的方法是實現了IWXAPIEventHandler接口的類的onReq方法,類型是ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX而在微信中和好友聊天時點擊第三方應用圖標所所觸發的方法是實現了IWXAPIEventHandler接口的類的onReq方法,類型是ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX

  6、微信會根據第三方應用是否註冊來給出應用安裝的信息,比如傳給微信好友一個音頻消息時,當好友點擊那個消息,微信會以一個WebView來load音頻消息中的URL,不過在此前會在URL後面附加一些微信定義的信息,其中就會包括一個字段是isInstalled有關微信包裝後的URL的具體格式,我們可以將網絡斷開,然後再去點擊,這時自然就出現了那個經典界面,你也就可以看到URL的真面目了因爲我自己寫的demo都在實習結束後丟失了,所以給一個官方的demo下載,如果有不清楚的可以交流

謝謝合作,希望共同學習。大笑

六、工具附件

微信獲取程序簽名工具下載地址:http://xiazai.jb51.net/201211/tools/gen_signature_jb51.rar

七、微信SDK中會用到主要類的類圖

 

 

       上面這張類圖中顯示的是與微信通信過程中的請求類和響應類,第三方應用通過他們附帶的message字段來攜帶消息傳輸給微信進程。其中BaseResp有個內部類ErrCode,它裏面定義了幾個常量字段,當我們向微信發送請求後它會作爲返回字段,返回到我們的應用中來,我們可以根據這個做相應的處理,在後面的時序圖中將會提到。接下來就是SDK中的message對象了。

 

 

 

       上面這個類圖主要是消息對象,裏面有一個字段來引用媒體對象,這些媒體對象就是我們所能傳給微信的對象。有了消息對象和媒體對象,接下來要給出的就是將消息對象送出去的通信類了。

 

 

 

       上面的IWXAPI就是所說的通信類,所有與微信進行通信的工作都是它在做,而它的生成是由下面的工廠類來完成。旁邊的IWXAPIEventHandler接口是需要第三方應用來實現的,如果我們想處理微信的請求信息或是我們向它發請求後它返回的標識字段。

八、第三方應用與微信通信的時序圖

 

 

       應用只需要進行一次註冊就行了,然後在以後的使用中只需要封裝消息,讓通信類發送即可。從前面的類圖中可以看到,封裝消息的順序是首先生成需要發送的媒體對象,然後將媒體對象附加到消息對象中,接着建立請求對象,最後使用通信類發送即可。

 


 

 

 


 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章