友盟分享

作者: Small_Cake | 来源:发表于2017-04-01 16:39 被阅读238次

    你的应用或业务要得到推广,那么分享是必不可少的!友盟的分享个人觉得做得很不错,集成简单,且一直在更新!我使用的版本是6.4.2,你也可以去官方下载最新的SDK版本!http://dev.umeng.com/social/android/sdk-download

    下载好后里面有友盟快速集成工具,点击后可以选择自己想集成的平台,它就会生成相应的资源文件在umeng_integratetool_result文件夹下了,直接覆盖到自己的项目对应的目录下,这里我选择了用的最多的三个平台【QQ精简版】【微信精简版】【新浪微博精简版】。


    Paste_Image.png

    如果你使用了微信,还需要在包名目录下创建wxapi文件夹,新建一个名为WXEntryActivity的activity继承WXCallbackActivity
    准备工作做好之后,就开始我们的配置和代码编写!

    1.首先加入相应的权限

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />```
    
    #2.同时加入相关的Activity和appkey
    新浪平台:
    

    <activity
    android:name=".WBShareActivity"
    android:configChanges="keyboardHidden|orientation"
    android:screenOrientation="portrait" >
    <intent-filter>
    <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
    <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
    </activity>

    >这里的WBShareActivity可以在下载的Demo中找到,也可以自己建一个,然后继承WBShareCallBackActivity就可以了
    
    微信平台:
    

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

    >这里的Activity就是我们开头准备工作说的WXEntryActivity
    
    qq精简版:
    

    <activity
    android:name="com.umeng.qq.tencent.AuthActivity"
    android:launchMode="singleTask"
    android:noHistory="true" >

            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="tencent100424468" />
            </intent-filter>
    </activity>
    
    <activity
            android:name="com.umeng.qq.tencent.AssistActivity"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:configChanges="orientation|keyboardHidden|screenSize"/>
    
    > 这里的两个Activity都来之SocialSDK_QQ_Simplify.jar里面,所以不用你去src下面添加!
    
    分享编辑页面(只有新浪微博精简版,豆瓣人人腾讯微博需要):
    

    <activity
    android:name="com.umeng.socialize.editorpage.ShareActivity"
    android:theme="@style/Theme.UMDefault"
    android:excludeFromRecents="true"
    />

    > 这里的Activity来至umeng_social_shareview.jar,也不用你去添加!
    
    最后记得添加友盟appkey
    

    <meta-data
    android:name="UMENG_APPKEY"
    android:value="561cae6ae0f55abd990035bf" >
    </meta-data>

    > 一共5堆,加入多少就看你的情况而定啦,最后一堆必加!
    
    # 3.加入签名
    
    > 由于有的平台授权会受到影响,所以还要加入签名文件在你项目下的build.gradle中
    
    ######a 将自己的签名文件放入到build.gradle目录下,如官方截图
    
    ![Paste_Image.png](https://img.haomeiwen.com/i1503465/5e418cca3590fec2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    然后在build.gradle中配置
    
    ![签名配置](https://img.haomeiwen.com/i1503465/cd2abff785b47636.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    #4.分享( 分享面板分享,直接分享)
    - 分享面板分享,用户可以调用我们提供的默认分享面板UI,打开分享面板,然后点击分享面板的对应平台进行分享
    
    - 直接分享,用户可以自己写分享按钮,或者触发事件,然后调用我们的分享方法,进行分享。
    
    ######在我们自己的MyApplication中配置各平台参数并初始化
    

    public class MyApplication extends LitePalApplication{
    @Override
    public void onCreate() {
    super.onCreate();

        PlatformConfig.setWeixin("wx967daebe835fbeac", "5bb696d9ccd75a38c8a0bfe0675559b3");
        PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
        PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad", "http://sns.whalecloud.com");
        UMShareAPI.get(this);
    }
    

    }

    
    ####a.面板分享
    

    new ShareAction(getActivity()).withText("hello")
    .setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN,SHARE_MEDIA.WEIXIN_CIRCLE,SHARE_MEDIA.WEIXIN_FAVORITE)
    .setCallback(umShareListener).open();

    setDisplayList是要加入的平台,umShareListener是分享回调
    

    private UMShareListener umShareListener = new UMShareListener() {
    @Override
    public void onStart(SHARE_MEDIA platform) {
    //分享开始的回调
    }
    @Override
    public void onResult(SHARE_MEDIA platform) {
    L.d("plat","platform"+platform);
    Toast.makeText(getActivity(), platform + " 分享成功啦", Toast.LENGTH_SHORT).show();
    }
    @Override
    public void onError(SHARE_MEDIA platform, Throwable t) {
    Toast.makeText(getActivity(),platform + " 分享失败啦", Toast.LENGTH_SHORT).show();
    if(t!=null){
    L.d("throw","throw:"+t.getMessage());
    }
    }
    @Override
    public void onCancel(SHARE_MEDIA platform) {
    Toast.makeText(getActivity(),platform + " 分享取消了", Toast.LENGTH_SHORT).show();
    }
    };

    最后来一张效果图:
    
    ![分享截图](https://img.haomeiwen.com/i1503465/f810fbf9d838f293.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    
    是不是很简单,主要是前期配置要多点。而代码只需要这段就搞定!如果需要更多功能,可以访问官方文档 [友盟分享](http://dev.umeng.com/)
    
    

    相关文章

      网友评论

      本文标题:友盟分享

      本文链接:https://www.haomeiwen.com/subject/vndvottx.html