亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > Android > 正文

Android 第三方應用接入微信平臺研究情況分享(二)

2020-04-11 12:36:33
字體:
來源:轉載
供稿:網友

微信平臺開放后倒是挺火的,許多第三方應用都想試下,畢竟可以利用微信建立起來的關系鏈來拓展自己的應用還是挺不錯的,可以節約很多在社交方面的開銷,我最近由于實習需要也在研究這個東西,不過發現網上的相關資料還是挺少的,這里把我的整個研究情況給出來,希望可以共同學習。

第三方應用接入微信平臺(1)

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

2、接收微信的請求信息


前面四步和之前的“1、向微信發送消息”是一樣的,不需要重復執行,這里給出來只是為了

流程的整體性。當我們注冊后,應用圖標會出現在微信聊天的列表中,點擊加號即可去添加,

添加后,如果聊天時點擊應用圖標將會回調第三方應用,如上面時序圖所示。這里補充一點,

當我們向微信發消息的媒體類型是appdata類型,即WXAppExtendObject對象時,好友在

收到消息時點擊消息,會出現類似的回調過程,需要修改的就是此時onReq被調用時,type

為ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX而不是ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX 。

當我們在onReq方法中接到ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX

類型的消息時,如果想要把響應發回微信,可用如下代碼段來實現


可以發現響應的消息對象和發請求是一樣的,下面看看效果圖

這是聊天窗口,前提是你已經點擊加號將應用添加到下面的列表中


此時,如果點擊第三方應用,會回調我們設置好的界面


這個界面是自己定義的,你可以在接到微信的請求后自定義響應界面。

說了半天,還沒說到onReq方法或是前面講的onResp方法的由來,

也就是說如果我們想要處理給微信發請求后的回饋或是響應微信的請求

應該怎么做,我們需要下面3步操作:

a. 可以在你的包名相應目錄下新建一個wxapi目錄,并在該wxapi目錄下新增一個
WXEntryActivity類,該類繼承自Activity(當然這個路徑是自定義的,隨便你自己)

并在manifest文件里面加上exported屬性,設置為true,例如:

復制代碼 代碼如下:

<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTop" >

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

終于出現了這兩個神奇的方法,可以看看他們的大致用法

復制代碼 代碼如下:

<SPAN style="FONT-SIZE: 18px; FONT-FAMILY: Microsoft YaHei"> @Override
public void onReq(BaseReq req) {
switch (req.getType()) {
case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:
goToGetMsg();
break;
case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:
goToShowMsg((ShowMessageFromWX.Req) req);
break;
default:
break;
}
}</SPAN>

復制代碼 代碼如下:

<SPAN style="FONT-SIZE: 18px; FONT-FAMILY: Microsoft YaHei"> @Override
public void onResp(BaseResp resp) {
int result = 0;

switch (resp.errCode) {
case BaseResp.ErrCode.ERR_OK:
result = R.string.errcode_success;
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
result = R.string.errcode_cancel;
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:
result = R.string.errcode_deny;
break;
default:
result = R.string.errcode_unknown;
break;
}

Toast.makeText(this, result, Toast.LENGTH_LONG).show();
}</SPAN>

c. 在WXEntryActivity中將接收到的intent及實現了IWXAPIEventHandler接口的對
象傳遞給IWXAPI接口的handleIntent方法:
復制代碼 代碼如下:

api.handleIntent(intent, this);

ok,這三步可以結合時序圖一起來理解,都可以一一對應的。

最后給出一些注意點,也是容易混淆的,我都寫過Demo驗證過了,如果大家覺得有不對的,歡迎指出,歡迎討論

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下載,如果有不清楚的可以交流

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91牛牛免费视频| 日韩av日韩在线观看| 91精品视频免费看| 国产亚洲精品久久久| 91精品国产99| 欧美激情高清视频| 日韩成人在线播放| 久久91超碰青草是什么| 国产不卡av在线| 欧美日韩综合视频| 在线视频精品一| 亚洲精品999| 中文字幕免费国产精品| 久久精品人人爽| 久久网福利资源网站| 亚洲人成77777在线观看网| 欧美国产日本在线| 色播久久人人爽人人爽人人片视av| 日日骚av一区| 久久精品91久久久久久再现| 在线看国产精品| 狠狠躁夜夜躁久久躁别揉| 中日韩美女免费视频网站在线观看| 九九热这里只有精品6| 国产精品福利在线| 日韩中文字幕在线精品| 国产成人免费91av在线| 久久综合88中文色鬼| 久久免费在线观看| 国产精品白嫩美女在线观看| 欧美电影免费观看大全| 国产91亚洲精品| 欧美日韩国产一区二区| 国产成人福利夜色影视| www.日本久久久久com.| 国产a∨精品一区二区三区不卡| 最新国产成人av网站网址麻豆| 日韩在线视频中文字幕| 久久久国产成人精品| 日韩欧美aⅴ综合网站发布| 久久精品国产一区二区电影| 亚洲国产日韩欧美在线动漫| 久久久这里只有精品视频| 日韩精品视频中文在线观看| 日韩精品在线电影| 国产精品久久久久久久天堂| 欧美一乱一性一交一视频| 中文字幕v亚洲ⅴv天堂| 欧美激情视频免费观看| 欧美中文字幕在线观看| 久久人人97超碰精品888| 日韩激情av在线播放| 中文字幕不卡在线视频极品| 2019亚洲男人天堂| 俺去了亚洲欧美日韩| 久久久久久久久国产精品| 亚洲国产精品电影| 久久精品视频播放| 亚洲国产女人aaa毛片在线| 久久999免费视频| 在线亚洲欧美视频| 在线视频欧美日韩精品| 在线观看视频亚洲| 欧美视频在线观看免费网址| 97成人精品区在线播放| 国产亚洲福利一区| 日韩av最新在线| 国产精品久久97| 日韩美女中文字幕| 亚洲xxxxx性| 久久成人一区二区| 亚洲美女av在线| 青草青草久热精品视频在线网站| 国产视频精品xxxx| 国自产精品手机在线观看视频| 亚洲а∨天堂久久精品9966| 日韩免费不卡av| 欧美孕妇性xx| 日韩电影免费观看中文字幕| 亚洲国产婷婷香蕉久久久久久| 亚洲视频一区二区三区| 国产精品白嫩初高中害羞小美女| 亚洲第一av在线| 国内偷自视频区视频综合| 91日韩在线播放| 九色精品免费永久在线| 精品久久久久久久大神国产| 欧美黑人xxxⅹ高潮交| 欧美性高潮在线| 欧美精品成人91久久久久久久| 2019中文字幕免费视频| 久久人人爽人人爽人人片亚洲| 亚洲欧洲日产国码av系列天堂| 欧美一级大片在线免费观看| 不卡在线观看电视剧完整版| 国产精品高清免费在线观看| 26uuu久久噜噜噜噜| 国产91精品久久久久久| 精品视频中文字幕| 精品国产乱码久久久久久婷婷| 欧美精品精品精品精品免费| 亚洲国产成人91精品| 日韩中文字幕免费看| 欧美性视频精品| 日韩美女主播视频| 久久国产精品久久国产精品| 精品色蜜蜜精品视频在线观看| 91精品久久久久久久久不口人| 欧美二区在线播放| 色综合久久天天综线观看| 亚洲欧美激情一区| 精品国内产的精品视频在线观看| 亚洲欧美日本精品| 亚洲欧美日韩视频一区| 欧美中在线观看| 国产一区二区美女视频| 日本91av在线播放| 成人免费视频xnxx.com| 在线精品国产成人综合| 精品女同一区二区三区在线播放| 久久久av免费| 国产精品久久久久久久久男| 岛国av在线不卡| 亚洲天堂一区二区三区| 亚洲最大福利视频网| 91免费国产网站| 最近中文字幕2019免费| 亚洲欧洲xxxx| 亚洲自拍偷拍网址| 97婷婷涩涩精品一区| 91极品视频在线| 欧美性高跟鞋xxxxhd| 日韩av电影中文字幕| 日韩大陆欧美高清视频区| 一区二区在线免费视频| 欧美性生交大片免网| 国内外成人免费激情在线视频网站| 欧美日产国产成人免费图片| 日韩欧美主播在线| 91色精品视频在线| 成人av.网址在线网站| 97超碰国产精品女人人人爽| 国产狼人综合免费视频| 在线视频一区二区| 精品亚洲一区二区三区| 久久免费福利视频| 国产精品露脸自拍| 亚洲欧美中文日韩在线| 国产精品日本精品| 欧美午夜性色大片在线观看| 亚洲国产天堂久久国产91| 国产精品一区二区久久久久| 精品久久久久久| 欧美夫妻性生活视频| 88国产精品欧美一区二区三区| 国产成人综合精品在线| 亚洲xxx视频| 黄色一区二区在线观看| 精品亚洲aⅴ在线观看| 精品无码久久久久久国产| 国产精品中文字幕久久久| 成人国产精品一区二区| 国产主播欧美精品| 亚洲欧美激情一区|