本文主要讲解android微信分享sdk的接入和中级遇到的一些问题解决。
首先需要在微信开放平台申请账号,新建一个应用,生成AppID。
-
1 下载微信SDK sample demo源码和生成签名的工具apk。
首先将生成签名的工具apk和我们需要合入的apk(注:生成的release版本)安装到手机中,进入签名apk输入我们应用的包名,生成对应到app签名
,将此签名复制
填写到开放平台应用的应用签名一栏。 注意:一定要使用release版本的apk,因为签名工具的apk会根据app不同的签名文件生成不同的id。 -
2 参考 接入指南《Android接入指南》
1 build.grandle添加文件依赖。
2 AndroidManifest.xml 添加必要的权限支持。
3 注册到微信
在Application.java onCreate方法中添加
IWXAPI mWXAPI = WXAPIFactory.createWXAPI(this, WX_APP_ID, true);
mWXAPI.registerApp(WX_APP_ID);
```
* 4 添加WXEntryActivity类,此类是接收微信的请求和返回值得类。必须在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,该类继承自Activity。
很多人碰到接收不到返回问题,都是因为新建的路径不正确导致。在manifest添加
<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent" />
* 5 因为我们的需求不需要显示此页面,所以将WXEntryActivity设置为透明,代码参考如下。
public class WXEntryActivity extends Activity implements IWXAPIEventHandler{
private IWXAPI api;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
api = WXAPIFactory.createWXAPI(this, NetParams.WX_APP_ID, true);
try {
boolean result = api.handleIntent(getIntent(), this);
if(result == false){
finish();
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
@Override
public void onReq(BaseReq req) {
switch (req.getType()) {
case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:
break;
case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:
break;
default:
break;
}
finish();
}
@Override
public void onResp(BaseResp resp) {
int result = 0;
switch (resp.errCode) {
case BaseResp.ErrCode.ERR_OK:
result = R.string.errcode_success;
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
result = R.string.errcode_cancel;
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:
result = R.string.errcode_deny;
break;
case BaseResp.ErrCode.ERR_UNSUPPORT:
result = R.string.errcode_unsupported;
break;
default:
result = R.string.errcode_unknown;
break;
}
finish();
}
}
* 6 参考分享与收藏 Android接入部分和demo源码,在我的应用中添加调用分享的相关接口。
* 7 完成后编译成release包后测试。测试中我遇到点击分享直接闪退的问题,后来发现是直接run后app的签名后
第1步不匹配导致的,改回去后测试还是闪退,网上搜索后发现需要将手机里的微信删除后重新下载后再测试
成功。应该是微信的缓存文件记录了我的app签名后不会更新导致的。
###总结:
接入还是比较简单,主要需要注意的是1 WXEntryActivity保存的路径必须正确。 2 app必须要release版测试,保证签名字串一致。
网友评论