新手上路,一键分享,友盟sdk,不使用第三方sdk(未完待续)

记录自己学习的点滴

需要导入的外部的包根据要分享的平台,这里指添加了微信和qq的

然后像代码里 oncreate 方法里

  // 配置需要分享的相关平台
        configPlatforms();
        // 设置分享的内容
        setShareContent();

点击事件中:

case R.id.one_key_share:
mController.getConfig().setPlatforms(SHARE_MEDIA.WEIXIN, SHARE_MEDIA.WEIXIN_CIRCLE,
            SHARE_MEDIA.QQ, SHARE_MEDIA.QZONE, SHARE_MEDIA.SINA, SHARE_MEDIA.TENCENT,
            SHARE_MEDIA.DOUBAN,
            SHARE_MEDIA.RENREN);
    mController.openShare(getActivity(), false);

break;

/**
     * 配置分享平台参数</br>
     */
    private void configPlatforms() {


        // 添加QQ、QZone平台
        addQQQZonePlatform();


        // 添加微信、微信朋友圈平台
        addWXPlatform();
    }
    /**
     * @功能描述 : 添加QQ平台支持 QQ分享的内容, 包含四种类型, 即单纯的文字、图片、音乐、视频. 参数说明 : title, summary,
     *       image url中必须至少设置一个, targetUrl必须设置,网页地址必须以"http://"开头 . title :
     *       要分享标题 summary : 要分享的文字概述 image url : 图片地址 [以上三个参数至少填写一个] targetUrl
     *       : 用户点击该分享时跳转到的目标地址 [必填] ( 若不填写则默认设置为友盟主页 )
     * @return
     */
    private void addQQQZonePlatform() {
        String appId = "";
        String appKey = "";
        // 添加QQ支持, 并且设置QQ分享内容的target url
        UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(getActivity(),
                appId, appKey);
        qqSsoHandler.setTargetUrl("http://www.umeng.com/social");
        qqSsoHandler.addToSocialSDK();


        // 添加QZone平台
        QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(getActivity(), appId, appKey);
        qZoneSsoHandler.addToSocialSDK();
    }
    /**
     * @功能描述 : 添加微信平台分享
     * @return
     */
    private void addWXPlatform() {
        // 注意:在微信授权的时候,必须传递appSecret
        // wx967daebe835fbeac是你在微信开发平台注册应用的AppID, 这里需要替换成你注册的AppID
        String appId = "";
        String appSecret = "";
        // 添加微信平台
        UMWXHandler wxHandler = new UMWXHandler(getActivity(), appId, appSecret);
        wxHandler.addToSocialSDK();


        // 支持微信朋友圈
        UMWXHandler wxCircleHandler = new UMWXHandler(getActivity(), appId, appSecret);
        wxCircleHandler.setToCircle(true);
        wxCircleHandler.addToSocialSDK();
    }
    /**
     * 根据不同的平台设置不同的分享内容</br>
     */
    private void setShareContent() {

        QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(getActivity(),
                "100424468", "c7394704798a158208a74ab60104f0ba");
        qZoneSsoHandler.addToSocialSDK();
        mController.setShareContent("斗地主婆,你值得拥有!!");

        UMImage localImage = new UMImage(getActivity(), R.drawable.device);
        UMImage urlImage = new UMImage(getActivity(),
                "http://www.umeng.com/images/pic/social/integrated_3.png");
        // UMImage resImage = new UMImage(getActivity(), R.drawable.icon);

        // 视频分享
        UMVideo video = new UMVideo(
                "http://v.youku.com/v_show/id_XNTc0ODM4OTM2.html");
        // vedio.setThumb("http://www.umeng.com/images/pic/home/social/img-1.png");
        video.setTitle("分享");
        video.setThumb(urlImage);

        UMusic uMusic = new UMusic(
                "http://music.huoxing.com/upload/20130330/1364651263157_1085.mp3");
        uMusic.setAuthor("umeng");
        uMusic.setTitle("天籁之音");
        // uMusic.setThumb(urlImage);
        uMusic.setThumb("http://www.umeng.com/images/pic/social/chart_1.png");


        // UMEmoji emoji = new UMEmoji(getActivity(),
        // "http://www.pc6.com/uploadimages/2010214917283624.gif");
        // UMEmoji emoji = new UMEmoji(getActivity(),
        // "/storage/sdcard0/emoji.gif");

        WeiXinShareContent weixinContent = new WeiXinShareContent();
        weixinContent
                .setShareContent("欢迎来到斗地主婆的世界");
        weixinContent.setTitle("分享-微信");
        weixinContent.setTargetUrl("http://www.umeng.com/social");
        weixinContent.setShareMedia(urlImage);
        mController.setShareMedia(weixinContent);


        // 设置朋友圈分享的内容
        CircleShareContent circleMedia = new CircleShareContent();
        circleMedia
                .setShareContent("斗地主婆,有你有我有他,我们共同的家");
        circleMedia.setTitle("分享-朋友圈");
        circleMedia.setShareMedia(urlImage);
        // circleMedia.setShareMedia(uMusic);
        // circleMedia.setShareMedia(video);
        circleMedia.setTargetUrl("http://www.umeng.com/social");
        mController.setShareMedia(circleMedia);


        // 设置renren分享内容
        RenrenShareContent renrenShareContent = new RenrenShareContent();
        renrenShareContent.setShareContent("人人分享内容");
        UMImage image = new UMImage(getActivity(),
                BitmapFactory.decodeResource(getResources(), R.drawable.device));
        image.setTitle("thumb title");
        image.setThumb("http://www.umeng.com/images/pic/social/integrated_3.png");
        renrenShareContent.setShareImage(image);
        renrenShareContent.setAppWebSite("http://www.umeng.com/social");
        mController.setShareMedia(renrenShareContent);

        UMImage qzoneImage = new UMImage(getActivity(),
                "http://www.umeng.com/images/pic/social/integrated_3.png");
        qzoneImage
                .setTargetUrl("http://www.umeng.com/images/pic/social/integrated_3.png");

        // 设置QQ空间分享内容
        QZoneShareContent qzone = new QZoneShareContent();
        qzone.setShareContent("share test");
        qzone.setTargetUrl("http://www.umeng.com");
        qzone.setTitle("QZone title");
        qzone.setShareMedia(urlImage);
        // qzone.setShareMedia(uMusic);
        mController.setShareMedia(qzone);


        video.setThumb(new UMImage(getActivity(), BitmapFactory.decodeResource(
                getResources(), R.drawable.device)));


        QQShareContent qqShareContent = new QQShareContent();
        qqShareContent.setShareContent("爱的分享,——斗地主婆");
        qqShareContent.setTitle("hello, title");
        qqShareContent.setShareMedia(image);
        qqShareContent.setTargetUrl("http://www.umeng.com/social");
        mController.setShareMedia(qqShareContent);


        // 视频分享
        UMVideo umVideo = new UMVideo(
                "http://v.youku.com/v_show/id_XNTc0ODM4OTM2.html");
        umVideo.setThumb("http://www.umeng.com/images/pic/home/social/img-1.png");
        umVideo.setTitle("分享视频");


        TencentWbShareContent tencent = new TencentWbShareContent();
        tencent.setShareContent("斗地主婆起飞吧");
        // 设置tencent分享内容
        mController.setShareMedia(tencent);

        SinaShareContent sinaContent = new SinaShareContent();
        sinaContent
                .setShareContent("有一种斗地主叫做斗地主婆");
        mController.setShareMedia(sinaContent);

    }

在manifest配置文件中加入

  <meta-data
            android:name="UMENG_APPKEY"
            android:value="553df58167e58eda19000656" />

        <activity
            android:name="com.umeng.socialize.view.ShareActivity"
            android:configChanges="orientation|keyboard"
            android:launchMode="singleTask"
            android:noHistory="true"
            android:theme="@style/Theme.UMDialog"
            android:windowSoftInputMode="stateVisible|adjustResize" />
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

......

如果不用第三方sdk,如微信分享

第二步:导入微信支持jar文件

第一步:去微信开放平台(https://open.weixin.qq.com/)创建应用,并拿到AppId。

第三步:发送图文消息到微信朋友圈(按钮触发事件里加入以下代码,请确保应用签名与在开放平台注册的应用签名一致,对于微信app必须签名才能分享,且AppId也应该对应)

 case R.id.one_key_share:
IWXAPI api = WXAPIFactory.createWXAPI(context, APP_ID, false);
api.registerApp(APP_ID);
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = " http://www.xxxx.com/wap/showShare/";
WXMediaMessage msg = new WXMediaMessage(webpage);

msg.title = "分享的title";

msg.description = "分享内容";

try

{

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.accept);

Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, 150, 150, true);

bmp.recycle();

msg.setThumbImage(thumbBmp);

}

catch (Exception e)

{

e.printStackTrace();

}

SendMessageToWX.Req req = new SendMessageToWX.Req();

req.transaction = String.valueOf(System.currentTimeMillis());

req.message = msg;

req.scene = SendMessageToWX.Req.WXSceneTimeline;

api.sendReq(req);

break;

第四步:加提示回调界面

新建一个 一个包,包名是你程序包加上wxapi,在新建的包里新建一个类WXEntryActivity.java名字必须一致,这是微信开放平台规定的

 public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
private IWXAPI api;

protected void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);
api = WXAPIFactory.createWXAPI(this, Constants.APP_ID, false);
api.registerApp(Constants.APP_ID);
api.handleIntent(getIntent(), this);
}

@Override
public void onReq(BaseReq req)
{}

public void onResp(BaseResp resp){
int result = 0;
switch (resp.errCode)
{
case BaseResp.ErrCode.ERR_OK:
result = R.string.errcode_success;
break;

case BaseResp.ErrCode.ERR_USER_CANCEL:
result = R.string.errcode_cancel;
break;

case BaseResp.ErrCode.ERR_AUTH_DENIED:
result = R.string.errcode_deny;
break;

default:
result = R.string.errcode_unknown;
break;

}
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
finish();







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值