1. 程式人生 > >android之ShareSDK實現分享功能

android之ShareSDK實現分享功能

現在隨著科技的發達,人們交友的方式也越來越廣泛,用到的app也越來越多,那麼每當我們發現了好玩的好吃的好看的文章之類的,想分享到朋友圈.QQ空間.微博等如何做呢?由於這個需求越來越被需要,所以ShareSDK,友盟分享啊之類的分享的第三方出現了,省了開發者的開發時間,只需要整合第三方的庫之類的就可以直接使用,簡單又方便。

好了,廢話說完了,那麼具體該怎麼操作呢?這裡介紹使用ShareSDK實現分享功能

1.首先去ShareSDK的官網:http://www.mob.com/#/   下載對應的SDK,下載後解壓會發現有兩個資料夾:【1】ShareSDK for Android;【2】ShareSDK for Android Services。

ShareSDK for Android目錄中的“Libs”包含了“MainLibs”資料夾和“OnekeyShare”資料夾,這兩個是我們分享所需的;ShareSDK for Android Services包含了釋出的外掛服務,比如評論,點贊等,而我們不需要,因為我們只進行分享功能。

2.在官方網站註冊獲取ShareSDK的appkey。

3.在你需要分享的平臺註冊獲取key(比如微信平臺,騰訊平臺,新浪微博)

4.配置專案:

a.在需要的project中新建2個Library module : ShareSDK和OneKeyShare分別對應“MainLibs”資料夾(核心庫)和“OnekeyShare”資料夾(快捷分享庫); 
b.

刪掉2個module中src/main目錄裡面的所有檔案(包括刪掉java、res、AndroidManifest.xml)
c.複製第三方庫的AndroidMainfest.xml、res、src檔案(夾)到對應的新建的module庫目錄的src/main目錄中(記得將”MainLibs“下libs資料夾中的所以jar包複製到它對應的module(ShareSDK )的libs中)
d.app這個module依賴OneKeyShare;OneKeyShare依賴ShareSDK

5.在project的本module下新建一個assets資料夾,非新建的module(一般是“app”),然後將ShareSDK for Android / Res

目錄下的ShareSDK.xml檔案複製到新建的assets資料夾下

6.配置分享平臺:

<ShareSDK
        AppKey = "sharesdk應用的appkey"/> 
    <SinaWeibo
        Id="1")
        SortId="1"
        AppKey="key"
        AppKey="appkey" <span style="font-family: Arial, Helvetica, sans-serif;"></span>
        RedirectUrl="http://www.sharesdk.cn"
        ShareByAppClient="true"
        Enable="true" /> 


程式碼中是分享至新浪微博,其他平臺道理同上。

7.配置許可權:

    <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"/>
    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS"/>
    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>

8.在application節點下注冊下面的Activity,將下面綠色的改為在騰訊開放平臺申請到的AppId

        <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" >
            <intent-filter>
                <data android:scheme="tencent<span style="color:#33cc00;">1104646053</span>" />
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

9.在首啟動的Activity的onCreate方法中初始化ShareSDK: 即ShareSDK.initSDK(this);在結束的Activity的onDestroy方法中登出:即ShareSDK.stopSDK(this);

10.使用程式碼進行分享:

OnekeyShare oks = new OnekeyShare();
        oks.disableSSOWhenAuthorize();
        oks.setTitle("我是分享title");
        oks.setTitleUrl("http://xxxxxxxxxxxxxxxxxxxxxxx");
        oks.setText("永不止步");
        oks.setUrl("http://xxxxxxxxxxxxxxxxxxxx");
        oks.setComment("評論");
        oks.setSiteUrl("http://xxxxxxxxxxxxxxxxxxxxxxx");
        // 啟動分享
        oks.show(this);
        oks.setCallback(new PlatformActionListener() {
            @Override
            public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
                IApplication.showToast("成功" + platform.getName());
            }

            @Override
            public void onError(Platform platform, int i, Throwable throwable) {
                IApplication.showToast("錯誤" + platform.getName());
            }

            @Override
            public void onCancel(Platform platform, int i) {
                IApplication.showToast("取消" + platform.getName());
            }
        });

分享的整個流程就這樣了,還是很簡單的