Android分享-微信、Facebook、Google

831 阅读2分钟

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.分享展示:

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