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());
            }
        });

分享的整个流程就这样了,还是很简单的

发布了33 篇原创文章 · 获赞 49 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/gsw333/article/details/51576943