ShareSdk使用心得

1. 微信和朋友圈:分享的时候设置了链接和图片,但就是不显示:

  需要指明ShareType为WEB_PAGE

2. 需要完整添加 ShareSdk 的所需要的权限,不然分享闪退,并且不报异常;网络请求也是同理,切记,不要浪。

3. 新浪微博的分享比较特殊,不直接支持 url,需要将 url 与 text 拼接起来,所以需要监听回调:

 1                 // 由于新浪微博只支持text+Image的格式,只能将URL添加在text里面
 2                 oks.setShareContentCustomizeCallback(new ShareContentCustomizeCallback() {
 3                     @Override
 4                     public void onShare(Platform platform, cn.sharesdk.framework.Platform.ShareParams paramsToShare) {
 5 
 6                         if ("SinaWeibo".equals(platform.getName())) {
 7                             paramsToShare.setText(mNews.getTitle() + ServiceCenter.getNewsUrl(mNews.getId()));
 8                             paramsToShare.setUrl(null);// 将其他平台的 url 置空
 9                         }
10                     }
11                 });

3.1 微信朋友圈分享比较特殊,只有 title,没有 text,所以需要在回调中重写朋友圈的 title,改为原本由 text 显示的内容

 1                 // 重写朋友圈的 title
 2                 oks.setShareContentCustomizeCallback(new ShareContentCustomizeCallback() {
 3                     @Override
 4                     public void onShare(Platform platform, cn.sharesdk.framework.Platform.ShareParams paramsToShare) {
 5 
 6                         Log.d("leo", "platForm:" + platform.getName());
 7 
 8                         if ("WechatMoments".equals(platform.getName())) {
 9                             paramsToShare.setTitle(mNews.getTitle());
10                         }
11                     }
12                 });

 

4. 新浪微博指定平台的分享,回调监听:

 1             Platform sinaWeibo = ShareSDK.getPlatform(SinaWeibo.NAME);
 2 
 3             sinaWeibo.setPlatformActionListener(new PlatformActionListener() {
 4 
 5                 @Override
 6                 public void onError(Platform arg0, int arg1, Throwable arg2) {
 7                     Toast.makeText(getContext(), "分享失败", Toast.LENGTH_SHORT).show();
 8                     Log.d("leo", "分享失败" + arg2);
 9                 }
10 
11                 @Override
12                 public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) {
13                     Toast.makeText(getContext(), "分享成功", Toast.LENGTH_SHORT).show();
14                     Log.d("leo", "分享成功");
15                 }
16 
17                 @Override
18                 public void onCancel(Platform arg0, int arg1) {
19                     Toast.makeText(getContext(), "分享取消", Toast.LENGTH_SHORT).show();
20                     Log.d("leo", "分享取消");
21                 }
22 
23             });
24 
25             sinaWeibo.share(sp);

5. Manifest 配置:

 1         <!-- shareSdk -->
 2         <activity
 3             android:name="com.mob.tools.MobUIShell"
 4             android:configChanges="keyboardHidden|orientation|screenSize"
 5             android:screenOrientation="portrait"
 6             android:theme="@android:style/Theme.Translucent.NoTitleBar"
 7             android:windowSoftInputMode="stateHidden|adjustResize" >
 8 
 9             <!-- 调用新浪原生SDK,需要注册的回调activity -->
10             <intent-filter>
11                 <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
12 
13                 <category android:name="android.intent.category.DEFAULT" />
14             </intent-filter>
15 
16             <!-- qq&qq空间 -->
17             <intent-filter>
18                 <data android:scheme="tencent1105111708" />
19 
20                 <action android:name="android.intent.action.VIEW" />
21 
22                 <category android:name="android.intent.category.BROWSABLE" />
23                 <category android:name="android.intent.category.DEFAULT" />
24             </intent-filter>
25         </activity>
26 
27         <!-- 微信分享回调 -->
28         <activity
29             android:name="cn.baonajia.and.wxapi.WXEntryActivity"
30             android:configChanges="keyboardHidden|orientation|screenSize"
31             android:exported="true"
32             android:screenOrientation="portrait"
33             android:theme="@android:style/Theme.Translucent.NoTitleBar" />

 

转载于:https://www.cnblogs.com/jinglecode/p/5123664.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值