当前位置:   article > 正文

Android QQ和微信分享_android qq分享

android qq分享

1. QQ分享

1.1 申请AppID

直接在腾讯开放平台申请就可以了。

1.2 搭建环境

直接去SDK下载界面下载,下载后拷贝jar包到libs目录
配置AndroidManifest.xml文件

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

<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**********" />
    </intent-filter>
</activity>
<activity android:name="com.tencent.connect.common.AssistActivity"
    android:theme="@android:style/Theme.Translucent.NoTitleBar"
    android:configChanges="orientation|keyboardHidden|screenSize" />
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

其中,把**********换成你的AppID

<data android:scheme="tencent**********" />
  • 1

混淆配置

-dontwarn com.tencent.**
-keep class com.tencent.** {*; }
  • 1
  • 2

1.3 QQ分享

创建一个链接分享

Tencent mTencent = Tencent.createInstance(appId, context);

final Bundle params = new 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,  "http://www.qq.com/news/1.html");
params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL,"https://www.baidu.com/img/bd_logo1.png");

mTencent.shareToQQ(activity, params, null);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

如果是本地图片,可以用QQShare.SHARE_TO_QQ_IMAGE_LOCAL_URL
其它分享可参考资料:腾讯开放平台-Android_Api调用说明

2. 微信分享

不得不说,微信分享比QQ分享的坑大了很多。

2.1 申请AppID

创建APP应用时,需要输入应用签名,搞了半天才终于明白是怎么回事。
在微信开放平台的Android资源下载,下载签名生成工具。把这个apk和你的应用安装到同一设备下,并输入应用的包名。
在这里插入图片描述

2.2 搭建环境

build.gradle中添加依赖

dependencies {
    ... ...

    implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.1.6'

    ... ...
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

配置AndroidManifest.xml文件

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  • 1
  • 2
  • 3
  • 4
  • 5

混淆配置

-keep class com.tencent.mm.opensdk.** {
   *;
}
-keep class com.tencent.wxop.** {
   *;
}
-keep class com.tencent.mm.sdk.** {
   *;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2.3 微信分享

创建一个链接分享

private static final int THUMB_SIZE = 150;

IWXAPI api = WXAPIFactory.createWXAPI(context, appId, true);

WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = url; // 链接

WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = title; // 标题
msg.description = desc; // 描述

SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = System.currentTimeMillis() + "";
req.message = msg;

req.scene = SendMessageToWX.Req.WXSceneTimeline; // 分享到微信朋友圈
// req.scene = SendMessageToWX.Req.WXSceneSession; // 分享到微信好友
mApi.sendReq(req)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

分享链接时,分享内容可以包含图片,不过这也是个坑点。图片必须在32K以下,而且还要指定宽高,否则极易发生“checkArgs fail, thumbData is invalid”的错误,让人找不着北。

Bitmap bmp = BitmapFactory.decodeResource(App.instance().getResources(), R.drawable.share);
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
bmp.recycle();
if (thumbBmp != null) {
    msg.thumbData = bmpToByteArray(thumbBmp, true);
}

private byte[] bmpToByteArray(final Bitmap bmp, final boolean needRecycle) {
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    bmp.compress(Bitmap.CompressFormat.PNG, 100, output);
    if (needRecycle) {
        bmp.recycle();
    }

    byte[] result = output.toByteArray();
    try {
        output.close();
    } catch (Exception e) {
    }

    return result;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

其他分享可参考资料:微信开放平台-Android应用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/292851
推荐阅读
相关标签
  

闽ICP备14008679号