1.注册你的APP
登录 微信开放平台 把你的开发者信息填上,这些就不上图了,都是中文字,应该看得懂
然后进入 管理中心 点击创建++移动应用++

创建移动应用
把你的应用信息填上,有些项目不知道怎么填随便填就行了,但是注意: 应用的包名和签名不能随便填!!
- 包名就是你的应用的包名例如: fucker.idiot.asshole.wanker
怎么获取签名?
先下载微信提供的一些工具

工具
首先将你的app安装在手机或者模拟器上,
由于平时我们调试软件都是使用debug的签名生成应用,所以我们要特别注意如果使用了debug的签名,等到APP正式发布的时候,微信的分享就不能用了.
所以我们要使用release的签名文件
怎么让我们debug的时候也使用release的签名文件呢?
打开应用Module的build.gradle文件 添加这样一份代码:
android {
signingConfigs{
debug{ //这里配置的就是debug的签名配置了
storeFile file("C:\\Users\\Administrator\\.android\\asd") //这个文件是我的,改成你自己的release签名文件
storePassword "asd123456" //密码改成自己的
keyAlias "asd" //再改成你自己的
keyPassword "asd123456" //再改成你自己的
}
}
}
再使用工具包中的软件便可以获取到应用的签名了,
填上应用的包名,然后"Get Signature"

获取签名
绿色的字就是签名
最后等待审核,可能要一两天把...
通过审核是这样的

通过审核
当然要把 AppID 和 AppSecret 记录下来,在代码中需要使用
第三方集成步骤大致都差不多:平台注册,引入依赖包,配置清单文件,初始化操作,最后引用
注册就不用说了,直接上第三方官网,按照提示申请注册账号和应用,获取相应的appid,appkey等;
2.引入依赖包:
项目build.gradle之下
compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
其中,里面的without表示没有统计功能,如果需要有统计功能修改为with即可,+号表示随时引入最新包;
3.配置清单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"/>
4.注册到微信(我是在Application的onCreate中注册的,也可以在Activity中注册)
IWXAPI mWxApi = WXAPIFactory.createWXAPI(this, ShareKey.WX_ID, true); mWxApi.registerApp(ShareKey.WX_ID);
第四步:分享内容到微信
IWXAPI mWXApi = WXAPIFactory.createWXAPI(context, ShareKey.WX_ID, true);
mWXApi.registerApp(ShareKey.WX_ID);
if (!mWXApi.isWXAppInstalled()) {
Tool.toast(context, R.string.share_unInstall_wx);
return;
}
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = url;
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = title;
msg.description = decribe;
msg.thumbData = getWXThumb(bitmap).toByteArray();
SendMessageToWX.Req req = new SendMessageToWX.Req();
//WXSceneTimeline朋友圈 WXSceneSession聊天界面
req.scene = isTimeLineCb ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;//聊天界面
req.message = msg;
req.transaction = String.valueOf(System.currentTimeMillis());
mWXApi.sendReq(req);
这是图片需要处理一下,太大了分享会报错
public static final int IMAGE_LENGTH_LIMIT = 6291456;
private static ByteArrayOutputStream getWXThumb(Bitmap resource) {
Bitmap thumb = createScaledBitmap(resource, 100, true);
ByteArrayOutputStream output = new ByteArrayOutputStream();
int quality = 90;
int realLength = Util.getBitmapByteSize(resource.getWidth(), resource.getHeight(), Bitmap.Config.ARGB_8888);
if (realLength > IMAGE_LENGTH_LIMIT) {
quality = (int) (IMAGE_LENGTH_LIMIT * 1f / realLength * 100);
}
if (quality < 75) {
quality = 75;
}
resource.compress(Bitmap.CompressFormat.PNG, quality, output);
output.reset();
thumb.compress(Bitmap.CompressFormat.PNG, 85, output);
return output;
}
第四步:最后就是分享的回调了(在自己项目包名下创建目录wxapi,这个目录下创建WXEntryActivity,也就是:你的包名.wxapi.WXEntryActivity,这个类需要在清单注册)
<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true"
android:launchMode="singleTop"
android:screenOrientation="portrait" />
WXEntryActivity的实现:
public class WXEntryActivity extends AppCompatActivity implements IWXAPIEventHandler {
private final int REQUEST_PAY = 100;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
share = ShareKey.getShare(this);
//如果没回调onResp,八成是这句没有写
WXAPIFactory.createWXAPI(this, WX_ID, false).handleIntent(getIntent(), this);
}
// 微信发送请求到第三方应用时,会回调到该方法
@Override
public void onReq(BaseReq req) {
}
// 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法
//app发送消息给微信,处理返回消息的回调
@Override
public void onResp(BaseResp resp) {
switch (resp.errCode) {
case BaseResp.ErrCode.ERR_AUTH_DENIED:
case BaseResp.ErrCode.ERR_USER_CANCEL:
switch (resp.getType()) {
case RETURN_MSG_TYPE_SHARE:
Tool.toast(this, "微信分享取消");
finish();
break;
}
break;
case BaseResp.ErrCode.ERR_OK:
switch (resp.getType()) {
case RETURN_MSG_TYPE_SHARE:
finish();
break;
}
break;
}
}
到此,微信分享就完事了。说一下需要注意的地方,
1 , app签名需要和微信平台上申请的一致
2 ,分享的图片大小要注意,缩略图不能大于32k
3 , 回调的WXEntryActivity要放对位置,清单也要添加
本文详细介绍如何在Android应用中集成微信分享功能,包括注册流程、依赖引入、配置清单文件、初始化及分享内容的具体实现过程。
880

被折叠的 条评论
为什么被折叠?



