android分享網頁
Ⅰ 調用Android 系統自帶分享功能
1. 設置Intent的action為Intent.ACTION_SEND。
2. 把要分享的數據通過.putExtra()傳入intent。
3. 設置類型.setType()。
4.startActivity()。
系統會自動識別出能夠兼容接受這些數據,且類型相符合的 activity。如果這些選擇有多個,則把這些 activity 顯示給用戶進行選擇。
若要響應其他應用的分享,在AndroidManifest里設置。
5. 如果為intent調用了Intent.createChooser(),那麼 Android 總是會顯示可供選擇。這樣有一些好處:
即使用戶之前為這個 intent 設置了默認的 action,選擇界面還是會被顯示。
如果沒有匹配的程序,Android 會顯示系統信息。
我們可以指定選擇界面的標題。
Ⅱ android怎麼把其他app的內容分享到自己的app里
很多時候我們的應用在使用微信分享內容之後,希望其他用戶點擊該分享內容能夠跳轉到我們的App,以實現閉環,這樣的分享才是最有價值的。這種需求涉及到不同應用之間的交互,雖然微信提供了分享SDK,但仍然有不少限制,現在總結兩種在Android平台上初步認為可行的方案:
1.分享網頁,從分享的網頁跳轉回原App。
2.分享WXAppExtendObject類型的數據,且只能分享給好友,好友從聊天列表點擊收到的分享內容可以直接跳轉第三方App(前提是好友手機上已經安裝了該App)。下面來詳細說明兩個方案,由於是在項目中實測的,為了隱私及行文方便,假設我們的應用的名字為MyApp,效果截圖也就不再展示。
方案一:
從WebView(該WebView從屬於另一個App,並非我們自己的App)跳轉到MyApp的某個界面(這里以跳轉到MyApp的Acticity A為例)。具體的實現邏輯如下:
(1)該WebView顯示的網頁內容只是一個超鏈接,自定義了一個scheme=myapp://,後邊可以附加一些參數,如果需要從網頁向App傳值的話。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>This is title</title>
</head>
<body>
<a href=』myapp://id=909624′>Jump to MyApp</a>
</body>
</html>
該網頁在WebView打開後就是一個簡單的超鏈接,截圖不再附。
(2)MyApp中的Activity A需要配置特定的infliter,如下:
<activity
<intent-filter>
<data android:scheme="myapp" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
</activity>
(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 調用系統分享怎樣分享一個鏈接
為了應用的推廣、傳播,很多的應用中都有「分享」功能,一個按鈕,點擊後會出現簡訊、微博等等一切實現了分享功能的應用列表。這一篇文章主要介紹怎麼調用分享功能和怎麼實現分享介面讓自己應用出現分享列表中。Android應用中能很方便的完成這些功能,這也正是Android的偉大之處,他能很簡單的完成應用之間的溝通以相互整合。
調用分享功能
1、分享文本
分享功能使用的隱式啟動Activity的方法,這里的Action使用的是 ACTION_SEND。
[java] view plainprint?在CODE上查看代碼片派生到我的代碼片
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(sendIntent);
效果如下圖的圖一。
2、改變分享列表標題
使用上面的分享方式分享列表標題為「使用一下內容完成操作」,Android中提供了Intent.createChooser() ,這樣能一直顯示分享選擇列表,並且修改了分享列表標題內容。
[java] view plainprint?在CODE上查看代碼片派生到我的代碼片
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(Intent.createChooser(sendIntent, getResources().getText(R.string.send_to)));
使用Intent.createChooser()的好處:
If you callIntent.createChooser() for the intent, Android will always display the chooser. This has some advantages:
Even if the user has previously selected a default action for this intent, the chooser will still be displayed.
If no applications match, Android displays a system message.
You can specify a title for the chooser dialog.
Ⅳ android menu中有個分享功能,點擊後進入分享頁面,能否監聽分享是否成功比如說簡訊分享,或者微博分享
可以啊,比如微博吧,如果你分享後,微博伺服器會給你返回一個值,例如200,你可以判斷如果得到這個值以後,然後在UI中顯示一個toast提示分享成功。