1.引入分享库:
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:5.1.4'
implementation 'com.facebook.android:facebook-share:[4,5)',{
exclude group: 'com.google.zxing', module: 'core'
}
implementation 'com.google.android.gms:play-services-plus:15.0.1'
2.微信分享:
在项目包名下新建包,新建包名必须为:wxapi wxapi包名下新建类:WXEntryActivity 分享回调处理在WXEntryActivity中,具体内容如下: /**
-
Created by Chao 2018/7/20 on 11:05
-
description 微信SDK回调路径 */ class WXEntryActivity : AppCompatActivity(), IWXAPIEventHandler {
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) WXAPIFactory.createWXAPI(this, App.APP_ID, false).handleIntent(intent, this); }
/**
- 微信发送请求到第三方应用时,会回调到该方法 */ override fun onReq(p0: BaseReq?) { }
/**
-
第三方应用发送到微信的请求处理后的响应结果,会回调到该方法
-
app发送消息给微信,处理返回消息的回调 */ override fun onResp(resp: BaseResp) { when (resp.errCode) { BaseResp.ErrCode.ERR_AUTH_DENIED, BaseResp.ErrCode.ERR_USER_CANCEL -> { showToast("分享取消") finish() }
BaseResp.ErrCode.ERR_OK -> finish()} } }
微信分享初始化: /**
- Created by Chao 2018/5/8 on 13:31
- description */
class App : BaseApplication() {
override fun init() {
registerWeChat(this)
}
/**
* 注册微信分享
*/
private fun registerWeChat(context: Context) {
api = WXAPIFactory.createWXAPI(context, APP_ID, true);
api.registerApp(APP_ID);
}
companion object {
lateinit var api: IWXAPI
const val APP_ID = "wx88888888"
fun getWXAPI(): IWXAPI {
return api
}
}
}
微信分享调起: /**
-
Created by Chao 2018/7/25 on 16:22
-
description */ object ShareUtil {
fun share(activity: AppCompatActivity) { CommonShareDialog.show(activity, R.layout.common_dialog_share_chinese) { val webpage = WXWebpageObject() webpage.webpageUrl = "www.baidu.com"
val msg = WXMediaMessage(webpage) msg.title = "标题" msg.description = "描述" //msg.thumbData = getWXThumb(bitmap).toByteArray() val req = SendMessageToWX.Req() //WXSceneTimeline朋友圈 WXSceneSession聊天界面 req.scene = if (it == 0) SendMessageToWX.Req.WXSceneSession else SendMessageToWX.Req.WXSceneTimeline//0微信 1朋友圈 req.message = msg req.transaction = System.currentTimeMillis().toString() App.getWXAPI().sendReq(req) if (it == 0) {//微信 activity.showToast("微信") } else if (it == 1) {//朋友圈 activity.showToast("朋友圈") } }}
fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { } }
2.facebook、google+分享:
/**
-
Created by Chao 2018/7/25 on 16:22
-
description */ object ShareUtil { private val GOOGLE_REQUEST_CODE: Int = 162 private var callbackManager: CallbackManager? = null
fun share(activity: AppCompatActivity) { FacebookSdk.setApplicationId("217521058906811") FacebookSdk.sdkInitialize(activity.applicationContext) CommonShareDialog.show(activity, R.layout.common_dialog_share_international) { if (it == 0) {//facebook val content = ShareLinkContent.Builder() .setContentUrl(Uri.parse("developers.facebook.com")) .build() callbackManager = CallbackManager.Factory.create() val shareDialog = ShareDialog(activity) shareDialog.registerCallback(callbackManager, object : FacebookCallback<Sharer.Result> { override fun onCancel() { activity.showToast("分享取消") }
override fun onSuccess(result: Sharer.Result?) { activity.showToast("分享成功") } override fun onError(error: FacebookException?) { activity.showToast("分享失败") } }) shareDialog.show(content, ShareDialog.Mode.AUTOMATIC) //activity.showToast("facebook") } else if (it == 1) {//google val shareIntent = PlusShare.Builder(activity) .setType("text/plain") // 不变 .setText("Welcome to the Google+ platform.") // 自定义内容 .setContentUrl(Uri.parse("https://developers.google.com/+/")) // 自定义链接地址 .getIntent() try { activity.startActivityForResult(shareIntent, GOOGLE_REQUEST_CODE) } catch (e: ActivityNotFoundException) { activity.showToast("You haven't installed google+ on your device") } //activity.showToast("google+") } }}
fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { if (requestCode == GOOGLE_REQUEST_CODE) {
return } callbackManager?.onActivityResult(requestCode, resultCode, data)} }
3.分享展示:


版权声明:本文为博主原创文章,未经博主允许不得转载。