Android集成QQ分享(2020-11-24)

2020-11-24  本文已影响0人  FynnJason

目录

一、下载SDK

https://wiki.connect.qq.com/sdk%E4%B8%8B%E8%BD%BD

二、导入SDK

1.将下载好的jar包放到自己项目的libs下,示例图:




2.将jar包引入到build.gradle中,示例代码:

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.core:core-ktx:1.3.1'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.3.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
 
    implementation files('libs/open_sdk_3.5.1.152_rd6ba70e_lite.jar') // 引入项目中使用
}

3.配置注册清单
引入权限和相应代码,如下所示:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application>
 <activity
       android:name="com.tencent.tauth.AuthActivity"
       android:noHistory="true"
       android:launchMode="singleTask" >
    <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="tencent你的AppId" />
    </intent-filter>
 </activity>
<activity
       android:name="com.tencent.connect.common.AssistActivity"
       android:configChanges="orientation|keyboardHidden"
       android:screenOrientation="behind" 
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<application>

其中,scheme的value填写你申请下来的AppId,至此,SDK集成完成。

三、使用

第一步:构建实体类

private val mTencent = Tencent.createInstance("申请的AppId", BaseApplication.instance)

BaseApplication.instance是全局的上下文,根据自己项目传递上下文即可

第二步:构建分享回调

private val mIUiListener = object : IUiListener {
        override fun onComplete(p0: Any?) {
           // 分享成功
        }

        override fun onCancel() {
            // 取消分享
        }

        override fun onWarning(p0: Int) {
        }

        override fun onError(p0: UiError?) {
           // 分享失败
        }
    }

第三步:构建分享结果返回

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        // 以下代码算是固定写法,复制即可
        if (requestCode == Constants.REQUEST_QQ_SHARE){
            Tencent.onActivityResultData(requestCode, resultCode, data, mIUiListener)
        }
    }

第四步,发起分享:
1.分享图文

val params = Bundle()
params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE,QQShare.SHARE_TO_QQ_TYPE_DEFAULT) // 固定写法
params.putString(QQShare.SHARE_TO_QQ_TITLE, "") // 标题,不能为空字符串
params.putString(QQShare.SHARE_TO_QQ_SUMMARY, "") // 描述,可以是空字符串
params.putString(QQShare.SHARE_TO_QQ_TARGET_URL, "") // 分享链接
params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, "") // 链接的图片,传空字符串默认是App图标
mTencent.shareToQQ(this, params, mIUiListener) // 发起分享
上一篇 下一篇

猜你喜欢

热点阅读