Android 接入ShareSdk分享

分享的步骤和效果:

 

集成ShareSDK步骤:

  1.登入微信开放平台,https://open.weixin.qq.com/,申请应用,在申请应用的过程中,主要有项要填写应用签名,签名工具下载地址https://open.weixin.qq.com/cgi-bin/readtemplate?t=resource/app_download_android_tmpl&lang=zh_CN,其它的按自己的需求写好,提交审核,审核通过后,我们能获得分享到微信朋友圈和分享给微信好友的权限。

 2.登入Mob官网http://www.mob.com/,注册账号,申请应用

3.下载集成的sdk ,点击QuickIntegrater.jar,生成项目Sample(没有自定义名称,默认就这个项目名称)

4. 将Sample目录res下文件,全都复制到自己项目下res文件夹下,再将cn下onekeyshare文件及目录都复制到自己项目文件中。

5.在AndroidManifest.xml的文件中,加入需要的权限,和要回调的类的信息

<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"/>
<!-- 蓝牙分享所需的权限 -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!-- wxapi.WXEntryActivity前面的包名和结构,一定是你在微信开发者平台申请应用填写的包名 -->
<activity    
    android:name="***********.wxapi.WXEntryActivity"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:exported="true"
    android:screenOrientation="portrait" />


<activity
    android:name="com.mob.tools.MobUIShell"
    android:configChanges="keyboardHidden|orientation|screenSize"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:windowSoftInputMode="stateHidden|adjustResize">
</activity>

6.添加jar包和ShareSDK.xml文件

接者在ShareSDK.xml文件里找到Wechat相关的,输入你在微信开放平台申请应用获得的AppId和AppSecret,这样你才可以分享到微信好友

  <Wechat
      Id="4"
      SortId="4"
      AppId="wx***********2"
      AppSecret="54***********5"
      UserName="gh_b0c6a9ca668a"
      Path="pages/index/index?id=mob"
      BypassApproval="false"
      WithShareTicket = "true"
      MiniprogramType = "2"
      Enable="true" />

 7.编写分享的代码

//现在是MobSDK.init而不是ShareSDK.init(Context); 
//后面的两个参数,是你在mob申请到的Appkey和App Secret
 MobSDK.init(MainActivity.this,"2******4","9f********8");
        setContentView(R.layout.activity_main);
        OnekeyShare oks = new OnekeyShare();
        //关闭sso授权
        oks.disableSSOWhenAuthorize();
        // title标题,印象笔记、邮箱、信息、微信、人人网、QQ和QQ空间使用
        oks.setTitle("标题");
        // titleUrl是标题的网络链接,仅在Linked-in,QQ和QQ空间使用
        oks.setTitleUrl("http://sharesdk.cn");
        // text是分享文本,所有平台都需要这个字段
        oks.setText("我是分享文本");
        //分享网络图片,新浪微博分享网络图片需要通过审核后申请高级写入接口,否则请注释掉测试新浪微博
       // oks.setImageUrl("");
        // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
        //oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
        // url仅在微信(包括好友和朋友圈)中使用
        oks.setUrl("http://sharesdk.cn");
        // comment是我对这条分享的评论,仅在人人网和QQ空间使用
        oks.setComment("我是测试评论文本");
        // site是分享此内容的网站名称,仅在QQ空间使用
        oks.setSite("ShareSDK");
        // siteUrl是分享此内容的网站地址,仅在QQ空间使用
        oks.setSiteUrl("http://sharesdk.cn");


        //这里是你点击要分享的平台之后,代码会进入这个回调方法,判断你想分享到哪个平台
        oks.setShareContentCustomizeCallback(new ShareContentCustomizeCallback() {
            @Override
            public void onShare(Platform platform, Platform.ShareParams paramsToShare) {
                if (Wechat.NAME.equals(platform.getName()) ||
                        WechatMoments.NAME.equals(platform.getName())) {
                    paramsToShare.setShareType(Platform.SHARE_WEBPAGE);
                    paramsToShare.setUrl("http://sharesdk.cn");
                    paramsToShare.setTitle("android集成sharesdk分享测试");
                }
            }
        });
        // 启动分享GUI
        oks.show(MainActivity.this);
        




//最后,分享成功之后,会进入到显示结果的WXEntryActivity这个activity里,这里也注明了,你可以自己编写显示的样式。
 /**
 * 处理微信向第三方应用发起的消息
 * <p>
 * 此处用来接收从微信发送过来的消息,比方说本demo在wechatpage里面分享
 * 应用时可以不分享应用文件,而分享一段应用的自定义信息。接受方的微信
 * 客户端会通过这个方法,将这个信息发送回接收方手机上的本demo中,当作
 * 回调。
 * <p>
 * 本Demo只是将信息展示出来,但你可做点其他的事情,而不仅仅只是Toast
 */
public void onShowMessageFromWXReq(WXMediaMessage msg) {
   if (msg != null && msg.mediaObject != null
         && (msg.mediaObject instanceof WXAppExtendObject)) {
      WXAppExtendObject obj = (WXAppExtendObject) msg.mediaObject;
      Toast.makeText(this, obj.extInfo, Toast.LENGTH_SHORT).show();
   }
}
问题:
   1.如果点击分享的平台,但是它自己退出来,并提示分享已取消,可能的情况是assets文件夹是放在src下,而不是main目录下
   2.分享到支付宝朋友圈提示分享失败,因为支付宝朋友圈只支持分享网页,即setShareType(Platform.SHARE_WEBPAGE)

 
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值