Android調(diào)用sharesdk過程及問題

具體配置方法詳見官網(wǎng),我這邊使用的離線配置向臀,即沒有使用gradle進(jìn)行配置巢墅,這里偷偷懶,不詳細(xì)記錄

詳細(xì)步驟

步驟為粗略步驟券膀,詳細(xì)步驟參照此處

  1. 官網(wǎng)根據(jù)自己要分享的平臺(tái)下載相關(guān)的jar包
  2. 將下載的jar包放在自己目錄的lib文件夾下并在項(xiàng)目中引用
  3. 使用它提供的指導(dǎo)文件生成相關(guān)文件君纫,并根據(jù)readme將各個(gè)文件放在各自對應(yīng)的路徑下
  4. 在manifests文件下申請相關(guān)權(quán)限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.INTERNET" />
<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.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
  1. 在application標(biāo)簽中添加以下內(nèi)容
<activity
     android:name="com.mob.tools.MobUIShell"
     android:theme="@android:style/Theme.Translucent.NoTitleBar"
     android:configChanges="keyboardHidden|orientation|screenSize"
     android:windowSoftInputMode="stateHidden|adjustResize" >
 
    <!-- 調(diào)用新浪原生SDK,需要注冊的回調(diào)activity -->
    <intent-filter>
        <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
 
    <!--集成line客戶端登錄授權(quán)芹彬,需要添如下格式的過濾器-->
    <intent-filter> 
    <data android:scheme="line.1477692153" />
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.BROWSABLE" />
    <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
 
<!-- ShareSDK<strong>3.1.0版本之前</strong>才需要在MobUIShell下面注冊此意圖蓄髓,3.1.0版本之后(包含3.1.0)不需要注冊此intent-->
 <intent-filter>
 <data android:scheme="tencent100371282" /> 
<action android:name="android.intent.action.VIEW" /> 
<category android:name="android.intent.category.BROWSABLE" />
 <category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 
</activity>
<!-- 填寫您從Mob開發(fā)者后臺(tái)中得到的Appkey和AppSecret -->
<meta-data android:name="Mob-AppKey" android:value="您的AppKey"/>
<meta-data android:name="Mob-AppSecret" android:value="您的AppSecret"/>

其中Mob-AppKey與Mob-AppSecret是自己申請時(shí)后臺(tái)分配的,根據(jù)后臺(tái)數(shù)據(jù)如實(shí)替換即可

  1. 在assets文件夾的ShareSDK.xml文件下舒帮,填寫每個(gè)平臺(tái)需要的參數(shù)会喝,例如
 <Wechat
        Id="4"
        SortId="4"
        AppId="xxx"
        AppSecret="xxx"
    userName="xxx"
    path="pages/index/index.html?id=1"
        BypassApproval="true"
        Enable="true" />

每個(gè)字段的意思詳見上面鏈接的官網(wǎng)教程

  1. 啟動(dòng)分享
    在需要彈出分享頁面進(jìn)行分享的頁面,添加以下方法
private void showShare() {
     OnekeyShare oks = new OnekeyShare();
     //關(guān)閉sso授權(quán)
     oks.disableSSOWhenAuthorize(); 
 
    // 分享時(shí)Notification的圖標(biāo)和文字  2.5.9以后的版本不     調(diào)用此方法
     //oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name));
     // title標(biāo)題玩郊,印象筆記肢执、郵箱、信息译红、微信预茄、人人網(wǎng)和QQ空間使用
     oks.setTitle(getString(R.string.share));
     // titleUrl是標(biāo)題的網(wǎng)絡(luò)鏈接,僅在人人網(wǎng)和QQ空間使用
     oks.setTitleUrl("http://sharesdk.cn");
     // text是分享文本临庇,所有平臺(tái)都需要這個(gè)字段
     oks.setText("我是分享文本");
     // imagePath是圖片的本地路徑反璃,Linked-In以外的平臺(tái)都支持此參數(shù)
     oks.setImagePath("/sdcard/test.jpg");//確保SDcard下面存在此張圖片
     // url僅在微信(包括好友和朋友圈)中使用
     oks.setUrl("http://sharesdk.cn");
     // comment是我對這條分享的評論,僅在人人網(wǎng)和QQ空間使用
     oks.setComment("我是測試評論文本");
     // site是分享此內(nèi)容的網(wǎng)站名稱假夺,僅在QQ空間使用
     oks.setSite(getString(R.string.app_name));
     // siteUrl是分享此內(nèi)容的網(wǎng)站地址淮蜈,僅在QQ空間使用
     oks.setSiteUrl("http://sharesdk.cn");
 
    // 啟動(dòng)分享GUI
    oks.show(this);
}

分享朋友圈時(shí),可以分享網(wǎng)絡(luò)圖片或本機(jī)圖片已卷,本機(jī)圖片需要設(shè)置 oks.setImagePath("/sdcard/test.jpg")梧田,網(wǎng)絡(luò)圖片需要設(shè)置 oks.setImageUrl(url);//url即為網(wǎng)絡(luò)圖片鏈接。

  1. 分享回調(diào)
    有時(shí)候我們要做活動(dòng)侧蘸,分享成功后贈(zèng)送優(yōu)惠券裁眯,這時(shí)候我們可以設(shè)置相關(guān)回調(diào)
oks.setCallback(new PlatformActionListener() {
            @Override
            public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {

            }

            @Override
            public void onError(Platform platform, int i, Throwable throwable) {

            }

            @Override
            public void onCancel(Platform platform, int i) {

            }
        });

可以看到,這里面定義了三個(gè)方法

  • onComplete讳癌,分享成功的回調(diào)穿稳,可以在這里調(diào)用接口,贈(zèng)送優(yōu)惠券等
  • onError晌坤,分享發(fā)生錯(cuò)誤的回調(diào)
  • onCancel逢艘,分享取消的回調(diào)
    我們一般關(guān)注第一個(gè)onComplete就行

至此旦袋,完整的分享過程已經(jīng)全部結(jié)束,可以歡快的進(jìn)行相關(guān)平臺(tái)的分享了

分享問題與解決

  1. 分享完成后選擇留在微信它改,分享回調(diào)失效
    此問題暫時(shí)無解……真的- -官方論壇也說沒有解決辦法……
    所以取巧的解決辦法是疤孕,在用戶調(diào)用分享的時(shí)候就調(diào)用接口發(fā)放優(yōu)惠券,缺點(diǎn)是可能會(huì)造成假分享

  2. 在安卓6.0以上的系統(tǒng)分享界面打不開
    本來以為是部分手機(jī)問題央拖,借了很多手機(jī)發(fā)現(xiàn)都有這個(gè)問題祭阀,于是想到了動(dòng)態(tài)權(quán)限問題,可是不知道是什么權(quán)限鲜戒,直到在文檔里發(fā)現(xiàn)了這段話


微信并無實(shí)際的分享網(wǎng)絡(luò)圖片和分享bitmap的功能专控,如果設(shè)置了網(wǎng)絡(luò)圖片,此圖片會(huì)先下載會(huì)本地遏餐,之后再當(dāng)作本地圖片分享踩官,因此延遲較大。bitmap則好一些境输,但是由于bitmap并不知道圖片的格式蔗牡,因此都會(huì)被當(dāng)作png編碼,再提交微信客戶端嗅剖。此外辩越,SHARE_EMOJI支持gif文件,但是如果使用imageData信粮,則默認(rèn)只是提交一個(gè)png圖片黔攒,因?yàn)閎itmap是靜態(tài)圖片。


sharesdk會(huì)將網(wǎng)絡(luò)圖片或者圖片都下載到本地强缘,所以我們這邊必須申請存儲(chǔ)權(quán)限督惰。
在申請完存儲(chǔ)權(quán)限后分享,成功旅掂!問題解決

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赏胚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子商虐,更是在濱河造成了極大的恐慌觉阅,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,002評論 6 519
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件秘车,死亡現(xiàn)場離奇詭異典勇,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)叮趴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,357評論 3 400
  • 文/潘曉璐 我一進(jìn)店門割笙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人眯亦,你說我怎么就攤上這事伤溉『篮浚” “怎么了?”我有些...
    開封第一講書人閱讀 169,787評論 0 365
  • 文/不壞的土叔 我叫張陵谈火,是天一觀的道長。 經(jīng)常有香客問我舌涨,道長糯耍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,237評論 1 300
  • 正文 為了忘掉前任囊嘉,我火速辦了婚禮温技,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘扭粱。我一直安慰自己舵鳞,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,237評論 6 398
  • 文/花漫 我一把揭開白布琢蛤。 她就那樣靜靜地躺著蜓堕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪博其。 梳的紋絲不亂的頭發(fā)上套才,一...
    開封第一講書人閱讀 52,821評論 1 314
  • 那天,我揣著相機(jī)與錄音慕淡,去河邊找鬼背伴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛峰髓,可吹牛的內(nèi)容都是我干的傻寂。 我是一名探鬼主播,決...
    沈念sama閱讀 41,236評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼携兵,長吁一口氣:“原來是場噩夢啊……” “哼疾掰!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起徐紧,我...
    開封第一講書人閱讀 40,196評論 0 277
  • 序言:老撾萬榮一對情侶失蹤个绍,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后浪汪,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體巴柿,經(jīng)...
    沈念sama閱讀 46,716評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,794評論 3 343
  • 正文 我和宋清朗相戀三年死遭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了广恢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,928評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡呀潭,死狀恐怖钉迷,靈堂內(nèi)的尸體忽然破棺而出至非,到底是詐尸還是另有隱情,我是刑警寧澤糠聪,帶...
    沈念sama閱讀 36,583評論 5 351
  • 正文 年R本政府宣布荒椭,位于F島的核電站,受9級(jí)特大地震影響舰蟆,放射性物質(zhì)發(fā)生泄漏趣惠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,264評論 3 336
  • 文/蒙蒙 一身害、第九天 我趴在偏房一處隱蔽的房頂上張望味悄。 院中可真熱鬧,春花似錦塌鸯、人聲如沸侍瑟。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,755評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽涨颜。三九已至,卻和暖如春茧球,著一層夾襖步出監(jiān)牢的瞬間咐低,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,869評論 1 274
  • 我被黑心中介騙來泰國打工袜腥, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留见擦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,378評論 3 379
  • 正文 我出身青樓羹令,卻偏偏與公主長得像鲤屡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子福侈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,937評論 2 361

推薦閱讀更多精彩內(nèi)容