Android ShareSDK快速實現分享功能

来源:http://www.cnblogs.com/jerehedu/archive/2016/02/03/5179276.html
-Advertisement-
Play Games

第一步 :獲取ShareSDK 為了集成ShareSDK,您首先需要到ShareSDK官方網站註冊並且創建應用,獲得ShareSDK的Appkey,然後到SDK的下載頁面下載SDK的壓縮包,解壓以後可以得到如下圖的目錄結構: ShareSDK在“ShareSDK for Android”目錄下,此目


第一步 :獲取ShareSDK

  為了集成ShareSDK,您首先需要到ShareSDK官方網站註冊並且創建應用,獲得ShareSDK的Appkey,然後到SDK的下載頁面下載SDK的壓縮包,解壓以後可以得到如下圖的目錄結構:

  ShareSDK在“ShareSDK for Android”目錄下,此目錄中的“Libs”包含“MainLibs”和“OnekeyShare” 分別是ShareSDK的核心庫和“快捷分享”的源碼庫,說明文檔也在“ShareSDK for Android”目錄下,集成ShareSDK前請務必仔細閱讀。 “ShareSDK for Android ApiDoc”包含Mainlibs和OnekeyShare的JavaDoc,供開發者開發時查閱。 “ShareSDK for Android Sample”包含ShareSDK的功能演示代碼和apk文件,Sample源碼的JavaDoc在中。 “ShareSDK for Android Services”包含ShareSDK已經發佈的“插件服務”,暫時我們只提供了“評論與贊”服務,壓縮包中已經提供了此插件服務的依賴庫、示例代碼、JavaDoc和apk文件。

第二步:導入ShareSDK

ShareSDK集成方式:

1、直接複製jar包到目標項目libs目錄

  直接複製jar和資源的方式,可以參考ShareSDK的Sample項目。 使用複製jar的方法,需要除了複製MainLibs/libs中的jar外,還需要複製MainLibs/res中圖片和strings,否則會出現授權時找不到資源的問題。 而且如果您的項目也集成了快捷分享,還需要複製OneKeyShare/src中的源碼、OneKeyShare/res中的資源,如果你的項目里沒有android-support-v4的jar需要把OneKeyShare/libs下的android-support-v4的jar到您的項目中。

2、快速生成項目

  由於直接複製jar包和資源的集成方式比較麻煩,ShareSDK提供了快速集成的程式,在Windows下可以直接雙擊執行,完成以後可以通過複製目標目錄中的文件到您項目中覆蓋就行了。 極大簡化了“直接複製jar和資源”這種集成方式的操作步驟。 對於你的項目是剛開發或者想寫一個Demo測試ShareSDK功能,可以使用這種方法快速集成

第三步:添加應用信息

  有三種方式

  第一種:在ShareSDK的應用管理後臺中配置,使用此方法需要調用ShareSDK.initSDK(context,你的應用在sharesdk註冊時返回的AppKey)方法進行初始化,如果以後更改了註冊信息可以直接從網上更改,而不用重新發佈新版本進行更新。(優先順序最高)

  第二種:通過代碼配置“setPlatformDevInfo(String, HashMap<String, Object>)”方法,使用此方法需要調用ShareSDK.init(context,你的應用在sharesdk註冊時返回的AppKey)方法進行初始化。(優先順序中)

  第三種:通過“assets/ShareSDK.xml”文件來配置,次方式會以明文存在,但這種方式最為簡單。(優先順序最低)

  這三種方式開發者可以自行選擇,不過這三種設置方式各有區別:第一種方式可以實現“動態配置應用信息”的功能,但是一旦脫離網路,ShareSDK可能無法運作;第三種方式是優先順序最低的方式,但是它最為方便、集中;最後使用代碼設置的方式是最靈活的方式,第二種方式開發者可以在代碼裡面寫死應用信息,也可以通過私有協議,從自己的伺服器上動態獲取應用註冊信息,其優先順序居第一種和第二種之間。 使用ShareSDK.xml配置註冊信息

<ShareSDK     AppKey="填寫您在ShareSDK上註冊到的AppKey" />

<SinaWeibo    

SortId="此平臺在您分享列表中的位置,整型,數值越大越靠後"    

AppKey="填寫您在新浪微博上註冊到的AppKey"    

AppSecret="填寫您在新浪微博上註冊到的AppSecret"    

Id="自定義欄位,整型,用於您項目中對此平臺的識別符"    

RedirectUrl="填寫您在新浪微博上註冊的RedirectUrl"    

ShareByAppClient="是否使用客戶端進行分享"    

Enable="布爾值,標記此平臺是否有效" />

  ShareSDK.xml以XML格式存儲數據,每一個平臺一個塊,除了社交平臺外,開發者在ShareSDK註冊應用時得到的Appkey需要填寫在塊“ShareSDK”中,如果此Appkey不是開發者自己的Appkey,則將來在ShareSDK應用後臺的統計數據將不正確。ShareSDK的每一個平臺都具備SortId、Id、Enable四個欄位,除此之外的欄位(如新浪微博的AppKey、AppSecret、RedirectUrl、ShareByAppClient等欄位)需要到目標平臺上註冊應用以後得到,請正確填寫這些欄位的數據,否則ShareSDK無法完成授權,則後續的其它操作也將無法執行。

  代碼配置註冊信息示例(演示初始化新浪微博配置信息) 因為各個分享平臺可以設置的配置信息不同,具體分享平臺需要設置哪些配置信息請參考sample里的ShareSDK.xml配置文件

ShareSDK.initSDK(Context,"你的應用在Sharesdk註冊時返回的AppKey"); 
HashMap<String,Object> hashMap = new HashMap<String, Object>();     
hashMap.put("Id","1");     
hashMap.put("SortId","1");     
hashMap.put("AppKey","568898243");     
hashMap.put("AppSecret","38a4f8204cc784f81f9f0daaf31e02e3");    
hashMap.put("RedirectUrl","http://www.sharesdk.cn");     
hashMap.put("ShareByAppClient","true");     
hashMap.put("Enable","true");     
ShareSDK.setPlatformDevInfo(SinaWeibo.NAME,hashMap);

  方法需要在Sharesdk.initSDK()方法後調用,如果調用了ShareSDK.stopSDK()需要在ShareSDK.initSDK後重新調用ShareSDK.setPlatformDevInfo()方法。 關於應用信息不同欄位的更詳細解釋,可以參考ShareSDK.xml文件頭部的說明。

第四步:配置AndroidManifest.xml

  不同的集成度需要在AndroidManifest.xml中添加的內容不一樣。但是首先您需要添加下麵的許可權列表:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<uses-permission android:name="android.permission.INTERNET"/>

  這些許可權將允許您的項目和ShareSDK判斷當前應用是否“前置”、獲取連接網路的許可權、獲取您的設備網路狀態的許可權、實現https安全連接的許可權、讀取手機設備狀態的許可權和保存必要配置的許可權。一般來說,即便不集成ShareSDK,大部分的項目也都會註冊申請這些許可權。

  其次,為了授權操作可以順利完成,需要在application下註冊下麵的Activity:

<activity
    android:name="com.mob.tools.MobUIShell"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:screenOrientation="portrait"
    android:windowSoftInputMode="stateHidden|adjustResize" />

 

  如果您的項目集微信或者微信朋友圈,請查看AndroidManifest.xml配置文件里的package路徑,需要在package目錄下創建wxapi目錄再放置WXEntryActivity。 沒有此activity在微信分享後回調會檢查是否有此activity,沒有將會報錯。

<activity     
    android:name=".wxapi.WXEntryActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"     
    android:configChanges="keyboardHidden|orientation|screenSize"     
    android:exported="true"     
    android:screenOrientation="portrait" />

 

  而如果您的項目集易信的兩個平臺,請查看AndroidManifest.xml配置文件里的package路徑需要在package目錄下創建yxapi目錄在放置回調Activity:

<activity     
    android:name=".yxapi.YXEntryActivity"     
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="keyboardHidden|orientation|screenSize" 
    android:exported="true"     
    android:screenOrientation="portrait" />

 

  客戶端的操作回調,因此ShareSDK也無法給予您操作回調。為了避免出錯,請使用相對路徑的方式,直接複製上面的代碼到您的AndroidManifest.xml中即可

第五步:添加代碼

  打開您項目的入口Activity,在其onCreate中插入下麵的代碼: 如果使用ShareSDK.xml方式配置調用

ShareSDK.initSDK(this);

  如果使用代碼配置應用註冊信息或者應用後臺配置應用註冊信息,調用

ShareSDK.initSDK(this,”androidv1101″);

  androidv1101:是你的應用在ShareSDK註冊應用信息時返回的AppKey。 代碼會初始化ShareSDK,此後對ShareSDK的操作都以此為基礎。如果不在所有ShareSDK的操作之前調用這行代碼,會拋出空指針異常

  效果圖:

 

 

作者:傑瑞教育
出處:http://www.cnblogs.com/jerehedu/ 
版權聲明:本文版權歸傑瑞教育技有限公司和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
技術咨詢:JRedu技術交流
 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • CSS3實現的平行四邊形代碼實例:本章節分享一段代碼實例,它實現了平行四邊形效果。代碼如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.co
  • 向下滾動一定距離出現返回頂部按鈕代碼實例:返回頂部按鈕在很多網站都有應用,也確實非常的人性化,但是有些網站可能會更進一步,那就是在預設狀態下,返回頂部按鈕在預設狀態下是隱藏的,只有向下拖動滾動條一定的距離,按鈕才會顯示,下麵就通過代碼實例介紹一下如何實現此功能。代碼如下: <!DOCTYPE htm
  • js實現浮點數保留兩位小數代碼:過浮點數小數點後面的數字太長的話,可能需要進行截取操作,下麵是一段這樣的實例代碼和大家分享一下。代碼如下: var num=3.1415926; console.log(num.toFixed(2)) 以上代碼比較簡單,這裡就多介紹了,具體可以參閱javascript
  • package.json中會有dependencies定義了項目依賴的外部組件,這些外部組件的依賴都是帶有版本符號以表示被依賴組件的版本範圍。 { "dependencies" : { "foo" : "1.0.0 - 2.9999.9999" , "bar" : ">=1.0.2 <2.1.2"
  • 在AngularJS中如何實現一個Model的緩存呢?可以通過在Provider中返回一個構造函數,併在構造函數中設計一個緩存欄位,在本篇末尾將引出這種做法。一般來說,Model要賦值給Scope的某個變數。有的直接把對象賦值給Scope變數;有的在Provider中返回一個對象再賦值給Scope變
  • 在寫一個js圖片輪播的時候,遇到了一個瀏覽器報錯的問題,想了很久,後面解決了問題, 瀏覽器報錯如下: 在chrome瀏覽器報錯如下: Uncaught TypeError: Cannot read property 'style' of undefined 在firefox瀏覽器報錯如下: Type
  • Xcode7自2015年9上架以來也有段時間了, 使用Xcode7以及Xcode7.1\Xcode7.2的小伙伴會發現像VVDocumenter-Xcode\KSImageNamed-Xcode\HOStringSense-for-Xcode等等一系列的插件不能正常使用了,下麵我們就來解決一下該版本
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...