微信
一、登陆网站 https://open.weixin.qq.com/
主页面 (需登陆,无账号请先注册)
二、选择相对应模块
如移动应用开发,点击“了解更多”
点击“创建应用”
三、填写相关信息
需提供图标两种,分辨率分别为28*28、108*108(只能是这两种分辨率),所填相关信息中一定不能出现“微信”“腾讯”等字样,否则会审核失败。官网我填的公司官网,(似乎随便填一个网址就好?)
(其中签名很容易出错,困扰我很久,签名很像MD5,也可以用官方提供的签名生成器生成,需提供包名,即Manifest中的包名。用生成器生成签名,必须使用:用你KeyStore打包成功后的apk在手机上运行,此时在签名生成器中输入你的包名,用此时生成器生成的签名申请key,测试也必须打包成apk再运行测试,否则不能分享,会出现“一闪”的情况(弹出微信界面瞬间又弹回应用界面),出现这种情况就是你的key有问题)
四、等待审核。。。。(大概1-2个工作日,这期间把代码啥的布置好)
导入架包 libammsdk.jar(开放平台下载)
在项目组新建包 com.xx.xx.wxapi(根据实际情况而定,最后必须是.wxapi结尾)
在包中新建类 WXEntryActivity(必须是这个名字)
在Manifest中注册
<activity
android:name=".wxapi.WXEntryActivity"
android:screenOrientation="portrait" >
</activity>
代码如下:
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
import com.tencent.mm.sdk.modelbase.BaseReq;
import com.tencent.mm.sdk.modelbase.BaseResp;
import com.tencent.mm.sdk.openapi.IWXAPI;
import com.tencent.mm.sdk.openapi.IWXAPIEventHandler;
import com.tencent.mm.sdk.openapi.WXAPIFactory;
/** 微信客户端回调activity示例 */
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
// private static final String TAG = null;
// IWXAPI 是第三方app和微信通信的openapi接口
private IWXAPI api;
@Override
protected void onCreate(Bundle savedInstanceState) {
api = WXAPIFactory.createWXAPI(this, "申请的APPID"", false);
api.handleIntent(getIntent(), this);
super.onCreate(savedInstanceState);
}
@Override
public void onReq(BaseReq arg0) {
}
@Override
public void onResp(BaseResp resp) {
// LogManager.show(TAG, "resp.errCode:" + resp.errCode + ",resp.errStr:"
// + resp.errStr, 1);
switch (resp.errCode) {
case BaseResp.ErrCode.ERR_OK:
Toast.makeText(getApplicationContext(), "分享成功", 2000).show();
// 分享成功
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
Toast.makeText(getApplicationContext(), "分享取消", 2000).show();
// 分享取消
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:
Toast.makeText(getApplicationContext(), "分享成功", 2000).show();
// 分享拒绝
break;
}
}
}
在自己MainActivity中布局一个分享按钮,实现代码
主要代码为:
private IWXAPI wxApi;
onCreate中
// 实例化
wxApi = WXAPIFactory.createWXAPI(context, "申请的APPID");
wxApi.registerApp("申请的APPID"");
如在“分享按钮”的点击触发事件中调用这两个方法即可。
wechatShare(0)//在需要的地方调用即可,0为好友分享,1为朋友圈
wechatShare(1)
public void wechatShare(int flag){
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = "分享的链接";
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = "分享的标题";
msg.description = "分享的内容";
//这里替换一张自己工程里的图片资源
这个图片要注意了,如果你确信以上工作全部做好并且正确,但是依旧不能分享,出现的现象是,点击“分享”按钮没有任何反应,那么有很大的可能是图片问题了,查看一下你的图片是不是太大了,我分享的图片是114*114像素。此处注意,请查看各个drawable中是否有同名图片,如果有,要保证图片都不大(个人建议复制一个图片,重命名改下像素,专门用来此处分享)
Bitmap thumb = BitmapFactory.decodeResource(getContentView().getResources(), R.drawable.app_icon);
msg.setThumbImage(thumb);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = String.valueOf(System.currentTimeMillis());
req.message = msg;
req.scene = flag==0?SendMessageToWX.Req.WXSceneSession:SendMessageToWX.Req.WXSceneTimeline;
wxApi.sendReq(req);
}
易信
易信分享跟微信极其相似,甚至,,,甚至key没有申请成功都能成功分享,这里不多介绍,详见Demo。(个人建议如果要倒腾分享,从微信开始)