Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android平台好友點擊微信分享的內容後跳轉來源App的實現方案研究

Android平台好友點擊微信分享的內容後跳轉來源App的實現方案研究

編輯:關於Android編程

很多時候我們的應用在使用微信分享內容之後,希望其他用戶點擊該分享內容能夠跳轉到我們的App,以實現閉環,這樣的分享才是最有價值的。這種需求涉及到不同應用之間的交互,雖然微信提供了分享SDK,但仍然有不少限制,現在總結兩種在Android平台上初步認為可行的方案:

1.分享網頁,從分享的網頁跳轉回原App。

2.分享WXAppExtendObject類型的數據,且只能分享給好友,好友從聊天列表點擊收到的分享內容可以直接跳轉第三方App(前提是好友手機上已經安裝了該App)。

下面來詳細說明兩個方案,由於是在項目中實測的,為了隱私及行文方便,假設我們的應用的名字為MyApp,效果截圖也就不再展示。

方案一:

從WebView(該WebView從屬於另一個App,並非我們自己的App)跳轉到MyApp的某個界面(這裡以跳轉到MyApp的Acticity A為例)。具體的實現邏輯如下:

(1)該WebView顯示的網頁內容只是一個超鏈接,自定義了一個scheme=myapp://,後邊可以附加一些參數,如果需要從網頁向App傳值的話。

This is title

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的兩種實現方案,各有優點和局限性,請根據自身業務需求選擇合適的分享方式,由於未能附截圖說明,如有哪裡表述不清楚的,歡迎留言討論。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved