友盟之分享集成(2018.3月最新版)

2018-03-27  本文已影响0人  苏坡坡要吃婆婆酥

如果你还没有使用,那么我劝你还是换个别的吧,比如说Mob的ShareSDK。
讲真,友盟真的很鶸,问题一大堆,问题是你很清楚哪里有问题但还半天解决不了,因为官网上的文档内容没一点卵用。

先去官网注册,下载SDK(可以看截图日期,这是最新版的)


友盟下载分享skd.png

下面是下载的SDK文件结构

友盟分享sdk文件目录.png
1.push那个文件夹请忽略,因为我下载时候一块下载了推送。
2.common这个文件夹请注意!!!里面有个umeng-common-1.4.4.jar包,需要拖入项目libs(记得同步项目)的,否则会报错。
java.lang.NoClassDeFoundError:Failed resolution of:Lcom/umeng/commonsdk/statistics/common/DeviceConfig
3.share文件
main————为核心包,里面的JAR包和RES文件都复制到项目
platforms————为平台包,里面的JAR包和RES文件都复制到项目
shareboard————分享面板包,如果不使用,可以不拷贝。(前面这是官方说的话,扯蛋)但是umeng_social_shareboard.jar 必须要,不然报错。
shareview————分享编辑页,如果没有使用新浪精简版,豆瓣人人腾讯微博,可以不使用该文件夹(我下载的精简版,只有QQ,微信,微博,所以没用)
debug.keystore————这个要放在项目的
友盟分享签名文件导入项目.png
signingConfigs { debug { storeFile file('debug.keystore') storePassword "android" keyAlias "androiddebugkey" keyPassword "android" } }

然后,因为微信回掉比较特殊,先要如图创建一个回掉Activity


友盟分享微信回掉页面.png

注意,要放在wxapi这个指定目录下,名字WXEntryActivity,继承WXCallbackActivity
wxapi放在包下一级目录。

接着配置清单文件。权限什么的还是不要复制文档了,鶸,啥权限都配啊!
傻逼文档!复制文档过来请注意AuthActivity,AssistActivity包名。
具体路径可以看导入的QQJar包里面。

  <activity
        android:name="com.tencent.tauth.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="tencent1106727511注意:格式是tencent+APPID,前面tencent不能少" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.tencent.connect.common.AssistActivity"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:configChanges="orientation|keyboardHidden|screenSize"/>

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

    <meta-data
        android:name="UMENG_APPKEY"
        android:value="填自己的"/>·

接着,我们需要在自己的MyApplication文件中配置

    //初始化友盟SDK
    UMShareAPI.get(this);//初始化sd
    //开启debug模式,方便定位错误,具体错误检查方式可以查看
    //http://dev.umeng.com/social/android/quick-integration的报错必看,正式发布,请关闭该模式
    Config.DEBUG = true;
    //微信
    PlatformConfig.setWeixin("wxa236a67eded7a34a", "1203eb81fdf192b301f813f53f29492f");
    //        //新浪微博(第三个参数为回调地址)
    //        PlatformConfig.setSinaWeibo("3111100954", "04b48b094faeb16683c32111124ebdad",
    //                "http://sns.whalecloud.com/sina2/callback");
    //应用宝开放平台  APP ID  APP KEY
    PlatformConfig.setQQZone("1106727511", "r7nD6XTBi98wRPYI");

QQ,微博回掉需要。写在分享那个页面。

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    //QQ,微博回掉需要
    UMShareAPI.get(ShareActivity.this).onActivityResult(requestCode, resultCode, data);
}

最后,具体分享代码

   //----------------以下开始为具体分享代码----------------------
   //连接地址
    UMWeb web = new UMWeb(webUrl);
    web.setTitle(title);
    //描述
    web.setDescription(description);
    if (TextUtils.isEmpty(imageUrl)) {
        //本地缩略图
        web.setThumb(new UMImage(activity, imageID));
    } else {
        //网络缩略图
        web.setThumb(new UMImage(activity, imageUrl));
    }
new ShareAction(activity)
            .setPlatform(SHARE_MEDIA.QQ) //SHARE_MEDIA.等等
            .withMedia(web)
            .setCallback(new UMShareListener() {
                 @Override
                public void onStart(SHARE_MEDIA share_media) {}
                 @Override
                public void onResult(final SHARE_MEDIA share_media) {}
                 @Override
                public void onError(final SHARE_MEDIA share_media, final Throwable throwable) {}
                 @Override
                public void onCancel(final SHARE_MEDIA share_media) {}}).share();
上一篇 下一篇

猜你喜欢

热点阅读