編輯:關於Android編程
很多時候我們的應用在使用微信分享內容之後,希望其他用戶點擊該分享內容能夠跳轉到我們的App,以實現閉環,這樣的分享才是最有價值的。這種需求涉及到不同應用之間的交互,雖然微信提供了分享SDK,但仍然有不少限制,現在總結兩種在Android平台上初步認為可行的方案:
1.分享網頁,從分享的網頁跳轉回原App。
2.分享WXAppExtendObject類型的數據,且只能分享給好友,好友從聊天列表點擊收到的分享內容可以直接跳轉第三方App(前提是好友手機上已經安裝了該App)。
下面來詳細說明兩個方案,由於是在項目中實測的,為了隱私及行文方便,假設我們的應用的名字為MyApp,效果截圖也就不再展示。
方案一:
從WebView(該WebView從屬於另一個App,並非我們自己的App)跳轉到MyApp的某個界面(這裡以跳轉到MyApp的Acticity A為例)。具體的實現邏輯如下:
(1)該WebView顯示的網頁內容只是一個超鏈接,自定義了一個scheme=myapp://,後邊可以附加一些參數,如果需要從網頁向App傳值的話。
Jump to MyApp
該網頁在WebView打開後就是一個簡單的超鏈接,截圖不再附。
(2)MyApp中的Activity A需要配置特定的infliter,如下:
(3)當在WebView上點擊上述自定義的超鏈接時就可以打開MyApp的A界面,所傳遞的參數也可以在所跳轉到的Activity中獲取,方法如下:
getIntent().getScheme();//獲得Scheme名稱
getIntent().getDataString();//獲得Uri全部路徑,根據自定義的格式解析字符串即可獲取我們上面附加的參數。
可行的實施方案:
MyApp中調用微信分享分享網頁內容,只需要在網頁中嵌入跟Android客戶端約定好的超鏈接協議scheme,那麼點擊時就可以跳轉到MyApp。
問題1:如果用戶安裝了MyApp,就可以點擊網頁跳轉,如果沒有安裝MyApp的話,WebView就會提示找不到該頁面。制作網頁時可以在網頁中做檢測,沒安裝MyApp的話,頁面就重定向到應用的下載頁面。
問題2:在普通App的WebView中和浏覽器中上述機制是可以的,但是在微信的WebView是不可以點擊直接跳轉我們的應用的,可能是微信做了某些過濾,且僅僅支持跟微信有深度合作的應用的跳轉,如大眾點評是可以的。針對這種情況,我們可以引導用戶使用浏覽器打開所分享的網頁,然後點擊就可以跳轉應用了。
方案二:
使用微信SDK分享WXAppExtendObject數據給好友,好友點擊跳轉MyApp的某個頁面(需要在分享時傳遞構造跳轉Intent的參數)。
1.該類型的分享(具體請參考微信分享SDK)可以帶幾個參數,參數中必須附帶一些構造跳轉Intent的數據。
2.好友點擊分享的內容,回調IWXAPIEventHandler接口的類的onReq方法,具體為
ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:這種情況才會調用,此時可以取出分享時附帶在參數中的一些數據,構造一個跳轉Intent,調用startActivity(intent) 來打開MyApp。
由於是項目實測,這種實現方式的截圖也就不傳了。
問題1:該分享方式只能分享給好友,不能分享到朋友圈。
問題2:如果好友沒安裝MyApp,點擊微信中好友分享過來的消息後無反應,無法提醒“未安裝MyApp,請下載”,因為這些邏輯要實現的話本身就是在MyApp裡面寫的,原本沒裝的話根本無法檢測。
問題3:WXAppExtendObject類型的分享,數據有大小限制,
extInfo(String)限制2KB;
fileData(byte[])供第三方使用的文件二進制數據,最大10M;
filePath:(String)Local directory of the file provided for applications,本身長度最大10KB,文件大小同上,不超過10M。
以上就是Android平台好友點擊微信分享的內容後跳轉來源App的兩種實現方案,各有優點和局限性,請根據自身業務需求選擇合適的分享方式,由於未能附截圖說明,如有哪裡表述不清楚的,歡迎留言討論。
Android開發四大組件分別是:活動(Activity):用於表現功能。服務(Service):後台運行服務,不提供界面呈現。廣播接收器(BroadcastReceiv
引言從GraphicsLab Project項目立項以來,一直都在忙著搭建Shader的實驗環境,現在基本的實驗環境已經搭建完畢,所以就試著使用它來編寫一些效果。本篇文章
在用dialogfragment的時候我們可能會不喜歡系統自帶的黑色邊框, @drawable/my_try_use_pay_dialog
AndFix全稱Android hot-fix,是alibaba的Android熱修復框架,支持Android 2.3到6.0的版本,支持arm與X86系統架構,支持Da
Android 開發工具升級到22.6.2在創建工程時只要選擇的最低版本