Skip to content

wthsjy/wutong-sharelibrary

Repository files navigation

@Deprecated

Refineit-sharelibrary

简化 QQ,QZone,微信,sina微博 分享 类库

  • 请对应 targetSdkVersion>=22, Android 5.1, appcompat-v7:22.2.1

更新日志

v1.4.0

  • 替换最新的新浪sdk

功能

  • QQ QZone分享
  • 微信分享
  • 微博分享
  • ...
  • 持续更新中...

如何使用?

Step 1: Gradle 依赖

在 build.gradle 中添加:

 compile 'com.wutong.share.library:Refineit-sharelibrary:1.4.0'

Step 2: 在Application 中初始化

public class ClientApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        initShare();
    }
    
    private void initShare() {
        RefineitShareConfiguration configuration = new RefineitShareConfiguration.Builder(this)
                .configSina("appKey", "此参数不需要,只做保留")
                .configWeiChat("appKey", "此参数不需要,只做保留")
                .configQQ("appId","此参数不需要,只做保留")
                .build();
        RefineitShareLib.getInstance().init(configuration);

    }
}

Step 3: 在 AndroidManifest.xml 中添加权限

    <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.WRITE_EXTERNAL_STORAGE" />
    <!-- 用于调用 JNI -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

Step 4: 添加微信的类文件

添加文件 你的包名.wxapi.WXEntryActivity,注意 WXEntryActivity 需要 extends RefineitShareWeChatActivity

Step 5: 在 AndroidManifest.xml 添加必要的Activity 注册

<!-- 新浪微博分享 -->
 <!-- 必须注册在微博授权,分享微博时候用到 -->
        <activity
            android:name="com.sina.weibo.sdk.component.WeiboSdkBrowser"
            android:configChanges="keyboardHidden|orientation"
            android:exported="false"
            android:windowSoftInputMode="adjustResize" />
        <activity android:name="com.wutong.share.library.sina.RefineitShareSinaActivity">
            <intent-filter>
                <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
 
<!-- 微信分享 -->
    <activity
            android:name=".wxapi.WXEntryActivity"
            android:exported="true"
            android:label="@string/title_activity_wxentry"
            android:launchMode="singleTop"/>
		
		
 

  • 注意此处替换 "tencent222222" 为 "tencent你申请到的appId"
<!-- QQ分享  -->
<activity
            android:name="com.tencent.connect.common.AssistActivity"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:configChanges="orientation|keyboardHidden">
        </activity>

        <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="tencent222222" />
          
            </intent-filter>
        </activity>

        <activity
            android:name="com.wutong.share.library.qq.RefineitShareQQActivity"
            android:launchMode="singleTop"
            android:screenOrientation="portrait" />
		
 

Step 6: 调用方法

public void sinaTest(){
	//新浪微博分享 只分享文字
	RefineitShareLib.getInstance().shareSinaText(Activity activity,  String content);
	//新浪微博分享 只分享图片
        RefineitShareLib.getInstance().shareSinaImage(Activity activity, Bitmap bitmap);
	//新浪微博分享 分享图片与文字并存
	RefineitShareLib.getInstance().shareImagWithText( Activity activity,  String content, Bitmap bitmap);
	//新浪微博分享 分享网页
        RefineitShareLib.getInstance().shareSinaWeb(Activity activity,  String title,  String description,
                             Bitmap thumbBitmap, Bitmap bitmap, String actionUrl);
 }      
public void weChatTest(){
	//微信分享  只有文字
	RefineitShareLib.getInstance().shareWeChatText(Context context, boolean isFriendCircle,  String title) ;
	//微信分享  只有图片
        RefineitShareLib.getInstance().shareWeChatImage(Context context,boolean isFriendCircle, Bitmap bitmap);
	//微信分享  网页 对象
	RefineitShareLib.getInstance().shareWeChatWeb(Context context, boolean isFriendCircle, 
						String title,  String description,  String webpageUrl,Bitmap thumbBitmap);
}		
public void qqTest(){
	// 分享到QQ好友,纯图片
	RefineitShareLib.getInstance().shareQQImage(Context context, String localPath) ;
	//分享到QQ好友,默认 支持类型见参数说明
        RefineitShareLib.getInstance().shareQQ(Context context, String title, String 
						targetUrl, String summary, String imageUrl);
	//分享到QQ空间,默认 支持类型见参数说明
	RefineitShareLib.getInstance().shareQQZone(Context context, String title, String targetUrl, 
						String summary, ArrayList<String> imageArrayList);
}
		

Step 7: 获取回调

  • 只需注册广播即可,如下:
  • 如果不需要获取回调,step 7 可以忽略
 public void registerBroadCast() {
        IntentFilter filter = new IntentFilter();
        filter.addAction(RefineitShareCode.IntentAction.SINA_SHARE);
        filter.addAction(RefineitShareCode.IntentAction.QQ_SHARE);
        filter.addAction(RefineitShareCode.IntentAction.WECHAT_SHARE);
        registerReceiver(myBroadCastReciver, filter);
    }
    
 private class MyBroadCastReciver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            //分享的action
            String action = intent.getAction();
            //分享的状态value
            String value = intent.getStringExtra(RefineitShareCode.CallBackCode.CODE_KEY);

            if (RefineitShareCode.IntentAction.SINA_SHARE.equals(action)) {
                Toast.makeText(MainActivity.this, value, Toast.LENGTH_SHORT).show();
                //TODO 此处按具体场景对value 进行判断,value有以下3个值
                //TODO RefineitShareCode.CallBackCode.CODE_VALUE_OK,
                //TODO RefineitShareCode.CallBackCode.CODE_VALUE_FAIL,
                //TODO RefineitShareCode.CallBackCode.CODE_VALUE_CANCEL


            } else if (RefineitShareCode.IntentAction.QQ_SHARE.equals(action)) {
                Toast.makeText(MainActivity.this, value, Toast.LENGTH_SHORT).show();
                
            } else if (RefineitShareCode.IntentAction.WECHAT_SHARE.equals(action)) {
            
                Toast.makeText(MainActivity.this, value, Toast.LENGTH_SHORT).show();
            }
        }
    }

存在问题

  • 在androidstudio 中查看源码无法看到 方法注释,请在此网页查看! 使用方法文档

联系方式 QQ: 258176257

About

简化 QQ,微信,新浪微博 分享

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages