Android社會化分享詳解

前言

? ? 現如今app市場競爭激烈,做app不會放過任何推廣自己的app的渠道,如果app中沒有社會化分享功能,那真的是OUT了,我們先來看下一些app中的分享界面功能吧。


? ? ? ?現在主流的分享平臺,一般用的都是微信、QQ、微博,國外的話就Fb、Twitter等,如果每一個都要去單獨加,對我們來說是耗時耗力,最重要的是每個第三方的SDK都很大,會增大很多包的體積,這個是我們最不想看到的;

? ? ?現在市面上提供了很多SDK,從集成速度,包的體積,平臺多樣,服務響應,用戶基數上來講,ShareSDK是個不錯的選擇,最重要的是,現在上了maven的集成方式,集成超快。

簡單的準備工作

? ? 下面我們看看我們需要做的準備工作,首先先確定我們想要分享的第三方平臺,這里面我們就以國內主流的平臺舉例,微信、QQ、微博;首先我們必須去其第三方平臺去申請應用得到對應的appid等信息,第三方給了appid,我們才可以去做分享;

話不多說上網站:

QQ:http://open.qq.com QQ與QZone共用一套key即可

微信:http://open.weixin.qq.com 微信好友,微信朋友圈,微信收藏共用一套key即可

微博:http://open.weibo.com

ShareSDK集成步驟

第一步,注冊賬號申請ShareSDK應用

? ? ?ShareSDK的AppKey直接到Mob官網申請即可。

? ? ?拿到appkey與appsecret了我們去看看文檔吧,http://wiki.mob.com/進入ShareSDK快速集成文檔,這個時候有人會問,問什么不下載SDK,直接開始看文檔集成了呢,因為ShareSDK 提供了Gradle的maven集成方式,無需手動下載,無需手動配置資源,權限;是不是聽起來很牛B,忍不住去看看;

第二步,sharesdk的maven集成

?首先、如下圖所示,需要在build.gradle中配置

    maven {url "http://mvn.mob.com/android"}dependencies {classpath 'com.mob.sdk:MobSDK:+'}復制代碼

添加的位置按照截圖上面的配置即可;


其次,在使用到Mob產品的module下面的build.gradle文件里面添加引用

 applyplugin:'com.mob.sdk'復制代碼

maven集成方式可以在Mob產品的module下面的build.gradle文件里面配置ShareSDK各個社交平臺的key信息

 MobSDK {appKey "d580ad56b4b5"appSecret "7fcae59a62342e7e2759e9e397c82bdd"ShareSDK {gui true //調用ShareSDK默認的界面//平臺配置信息devInfo {SinaWeibo {appKey "568898243"appSecret "38a4f8204cc784f81f9f0daaf31e02e3"callbackUri "http://www.sharesdk.cn"//回調地址,需要與微博后臺配置的回調地址一致,http://bbs.mob.com/forum.php?mod=viewthread&tid=47shareByAppClient true}Wechat {appId "wxdb0f7a71c883b423"appSecret "64020361b8ec4c99936c0e3999a9f249"//登錄需要配置appsecret 分享不需要配置}WechatMoments{appId "wxdb0f7a71c883b423"appSecret "64020361b8ec4c99936c0e3999a9f249"//登錄需要配置appsecret 分享不需要配置bypassApproval false}QQ {appId "100371282"appKey "aed9b0303e3ed1e27bae87c33761161d"shareByAppClient true}QZone {appId "100371282"appKey "aed9b0303e3ed1e27bae87c33761161d"bypassApproval false}}}
}
復制代碼

配置第三方key的字段說明可以點擊這里看文檔即可;


如上圖所示配置完之后點擊Sync Now進行重新編譯,到這里我們就集成完成了,下面我們調用代碼即可;

注意事項:如果您沒有在AndroidManifest中設置appliaction的類名,MobSDK會將這個設置為com.mob.MobApplication,但如果您設置了,請在您自己的Application類中調用:

MobSDK.init(this);復制代碼

并且在Manifest清單文件中配置:tools:replace=”android:name”,如下所示:

<applicationandroid:name = ".MyApplication"tools:replace="android:name">復制代碼

第三步,代碼調用

?下面的代碼就是onekeyshare的分享,即ShareSDK下面配置的gui true才可以調用,下面的代碼復制到您的工程中,在需要分享的地方調用即可;

private void showShare(String platformToShare) {OnekeyShare oks = new OnekeyShare();//關閉sso授權oks.disableSSOWhenAuthorize();if (platformToShare != null) {oks.setPlatform(platformToShare);}// title標題,微信、QQ和QQ空間等平臺使用oks.setTitle("測試標題");// titleUrl QQ和QQ空間跳轉鏈接oks.setTitleUrl("http://www.baidu.com");// text是分享文本,所有平臺都需要這個字段oks.setText("我是分享文本");//分享網絡圖片、分享本地圖片用oks.setImagePath("/sdcard/test.jpg");確保SDcard下面存在此張圖片oks.setImageUrl("https://lanre.smartemple.cn/image/share.png");// url在微信、微博,Facebook等平臺中使用oks.setUrl("http://sharesdk.cn");// comment是我對這條分享的評論,僅在人人網使用oks.setComment("我是測試評論文本");
/*      //onekeyshare默認提供了默認的分享回調Toast提示,如果想要自己定義調用setCallback即可,不需要自定義的可以忽略,值得一提的是callback回調是子線程,需要傳到主線程之后去操作后續內容哦;    oks.setCallback(new PlatformActionListener() {      @Overridepublic void onError(Platform arg0, int arg1, Throwable arg2) {// TODO Auto-generated method stub              }           @Overridepublic void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {// TODO Auto-generated method stub          }@Overridepublic void onCancel(Platform arg0, int arg1) {// TODO Auto-generated method stub              }});*/// 啟動分享GUIoks.show(this);}復制代碼

值得一提的是,onekeyshare的分享是根據調用的分享的方法自動適配分享類型,每個平臺分享的方法不同,具體可以去看ShareSDK的文檔說明
下面我們就可以去測試了,在監聽按鈕下調用
showShare(null);復制代碼

效果如下:


此時點擊平臺跳轉分享即可;

? ? ? ?如果不想用OneKeyShare的界面很簡單,很多小伙伴肯定也發現了剛才我的方法中private void showShare(String platformToShare) 有一個參數,如果想單獨調用修改這個參數即可,比如,我想單獨跳轉QQ,則在這個方法里面傳QQ.NAME即可,其他的平臺名稱看ShareSDK的快速集成文檔即可,效果如下


Demo下載地址:鏈接:https://pan.baidu.com/s/1nxh2Bqh 密碼:j4c3

常見問題說明:

1、微信分享提示分享失敗:檢查分享內容,特別是圖片是否有效,或者只分享文字測試

2、微信分享閃一下調用不起來微信客戶端:檢查微信后臺配置的包名是否與配置的applicationId一致;檢查微信后臺配置的應用簽名是否與您的app的應用簽名一致;

3、新浪微博客戶端分享提示分享成功,但是會保存到草稿箱發送不出去,檢查微博后臺配置的包名和簽名,與您的app的不一致導致的

4、QQ分享不需要審核通過即可分享,but,需要配置一些基本的信息,IOS與android平臺可以共用一套key,但是別忘了兩個平臺的基本信息都要配置下;

5、微信是通過審核之后才會給我們appid的,所以必須要通過審核才可以正式分享,并且必須保證微信后臺配置的包名和應用簽名與我們的app的包名和應用簽名一致,否則無法正分享,做微信第三方登錄的小伙伴,別忘了去申請權限還要每年300塊哦;

6、新浪微博、申請的時候就會給我們appkey和appsecret了,但是別忘了配置回調地址,不知道回調地址怎么配置都可以點擊這里進行查看,新浪微博和微信一樣都需要配置包名和應用簽名,這一點需要注意,如果包名和簽名不一致客戶端分享會報錯的哦。


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278540.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278540.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278540.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

windows7黑屏修復_如何在Windows 10更新后修復黑屏

windows7黑屏修復RealVector/Shutterstock.comRealVector / Shutterstock.comSome Windows 10 PCs have been rebooting to a black screen after installing the June 2019 cumulative update from Windows Update. This seems scary at first, but luckily there’s a quick …

[sol]250OJ 1~10

下載 轉載于:https://www.cnblogs.com/yztblog/p/10208314.html

vue/cli4 創建vue項目選項詳解

多版本創建項目一、vue-cli2.x二、vue-cli3.x三、vue-cli4.x1.查看 vue 版本&#xff1a; 項目中,找到package.json文件夾 找"dependencies"中的vue &#xff1b; 若無項目&#xff0c;在cmd中輸入 where vue&#xff0c;cd到vue目錄下輸入 npm list vue &#xff0c…

java 商品評價計算算法

import java.io.Serializable; import java.lang.ref.ReferenceQueue; import java.lang.ref.WeakReference; import java.math.BigDecimal; import java.math.RoundingMode;/*** 商品評價算法* * project icomment* fileName ProductScore.java* Description* author light-z…

rainmeter使用教程_如何使用Rainmeter在桌面上顯示報價

rainmeter使用教程I’ve never really been a desktop gadgets and widgets type of person, but I often put an inspirational quote on my desktop wallpaper. Today we’ll show you how to do this using Rainmeter, no matter what wallpaper you switch to. 我從來沒有真…

Some code changes cannot be hot swapped into a running virtual machine

java運行中修改代碼不能改變立刻應用到本次運行中轉載于:https://www.cnblogs.com/Pusteblume/p/10211110.html

自定義v-drag指令(橫向拖拽滾動)

指令 Vue.directive(drag, {// 鉤子函數&#xff0c;被綁定元素插入父節點時調用 (父節點存在即可調用&#xff0c;不必存在于 document 中)。inserted: (el, binding, vnode, oldVnode) > {console.log(el, binding, vnode, oldVnode)let drag el; // 要拖拽的元素// let …

javascript獲取時間差

function GetDateDiff(startTime, endTime, diffType) {//將xxxx-xx-xx的時間格式&#xff0c;轉換為 xxxx/xx/xx的格式 startTime startTime.replace(/\-/g, "/");endTime endTime.replace(/\-/g, "/");//將計算間隔類性字符轉換為小寫diffType diffTy…

JMeter擴展JMeter插件獲取更多監聽器

為了獲取更多監聽器&#xff0c;方便的監控系統及應用&#xff0c;有必要安裝第三方插件 插件下載地址&#xff1a; https://jmeter-plugins.org/downloads/old/ http://pan.baidu.com/s/1gfC11yN 注&#xff1a;如果插件和軟件版本不兼容&#xff0c;可能在開啟Jmeter時會報錯…

如何阻止Chrome(或Edge)接管媒體密鑰

Google Chrome now has built-in support for media keys. Unfortunately, Chrome will take over your media keys and prevent them from controlling apps like Spotify when you’re watching YouTube, for example. Here’s how to make Chrome ignore your media keys. G…

js滾動條滾動到指定元素

let item document.getElementById("item"); // 指定的元素 let wrapper document.getElementById("wrapper"); // 其父元素 - 必須是產生滾動條的元素// 元素聚焦法定位 // item.focus(); // 可用 outline:none; 除去聚焦產生的框; 對于默認沒有聚焦的…

開源性能測試工具JMeter快速入門(一)

目錄一、JMeter簡介二、JMeter功能介紹三、JMeter腳本四、關于JMeter小提示一、JMeter簡介1.定義JMeter是Apache組織開發的基于Java的壓力測試工具。用于對軟件做壓力測試&#xff0c;它最初被設計用于Web應用測試&#xff0c;但后來擴展到其他測試領域。 1&#xff09;它可以用…

八重州8900如何解鎖_八重貴族怪胎之路

八重州8900如何解鎖Dealing with computers day in and day out can be a harrowing experience. In difficult times, or even when things are idle, finding some spirituality can help cope with the experience—Techies: I give you the Eightfold Noble Geek Path. 日…

mysql 5.7.18 winx64安裝配置方法

在mysql-5.7.18-winx64文件夾下新建my.ini文件[mysql] # 設置mysql客戶端默認字符集 default-character-setutf8 [mysqld] #設置3306端口 port 3306 # 設置mysql的安裝目錄 basedirD:\Program Files\mysql-5.7.18-winx64 # 設置mysql數據庫的數據的存放目錄 datadirD:\Prog…

js 實現拖拽滾動、滾輪縮放元素函數和案例

文章目錄一、拖拽滾動1、封裝函數2、示例&#xff1a;二、滾輪縮放1、封裝函數2、結合拖拽滾動示例一、拖拽滾動 1、封裝函數 /*** description 使用鼠標拖拽div&#xff0c;實現橫向、縱向滾動* param el 被拖拽滾動的元素&#xff08;產生滾動條的元素&#xff09;*/functio…

怎么解決input中readonly屬性的iOS一直存在光標問題

用css中的pointer-events:none轉載于:https://www.cnblogs.com/studyh5/p/8352061.html

贈與大學畢業生_出售,贈與或交易iPhone之前應該做什么

贈與大學畢業生A factory reset of your iPhone erases all of your content and settings, reverting it to a like-new state. However, there are a few extra steps you should take if you plan to get rid of your iPhone. iPhone的恢復出廠設置將刪除所有內容和設置&…

layui radio 根據獲取的到值選中

<input type"radio" name"lwkg" value"1" title"開" lay-filter"lwkg"> <input type"radio" name"lwkg" value"0" title"關" lay-filter"lwkg"> layui.use(…

設置Mac自動顯示和隱藏 Dock 欄的速度

Dock 顯示和隱藏&#xff0c;系統默認設置成了1秒 通過終端.APP修改顯示和隱藏的時間 &#xff08;單位&#xff1a;秒&#xff09; 默認的&#xff1a;defaults write com.apple.dock autohide-delay -int 1 優化的&#xff1a;defaults write com.apple.dock autohide-del…

powerpoint預覽_如何放大和縮小PowerPoint演示文稿的一部分

powerpoint預覽Microsoft PowerPoint lets you zoom in and out on a specific part of your PowerPoint slideshow, which can be handy both while editing and for drawing attention to important objects or ideas during the presentation. Here’s how to do it. Micros…