微信分享的原生集成

来源:互联网 发布:淘宝不清洗会怎么样 编辑:程序博客网 时间:2024/06/05 01:52

分享集成

现在的APP大都会包含分享部分,分享的集成平台也很多,如SharedSDK,友盟等等,但是这些分享都是统一实现差异化分享,进行多方的差异化配置进而实现相关的分享,但是我们开发时候有时候只需要进行最常用的微信分享就可以实现,所以学习原生的分享集成是有必要的,另外原生的分享由于实现特定的平台分享,集成包也比较小,有利于我们的APP实现瘦身,下面开始介绍分享的实现。

1,微信开放平台进行app注册(https://open.weixin.qq.com/),进行相关的注册,拿到appid

2,注册时候需要生成应用签名,可获取工具输入包名获取相关签名,注意安装的包必须是正式签名的包(即release,不是debug),资源地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN

3,资源下载,资源地址同2,下载第一个android开发工具包即可。

4,下载解压得到libammsdk.jar拷贝到libs目录,同时添加依赖。

5,权限添加:

<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"/>

6,注册应用到微信,一般建议在application的onCreate中完成,也可在入口activity的onCreate中完成。

private static final String Weixin_id = "appid";public static IWXAPI WeixinAPI;
WeixinAPI = WXAPIFactory.createWXAPI(this, Weixin_id, true);WeixinAPI.registerApp(Weixin_id);
7,分享实现:

微信分享可分享文字、图片、音乐、视频、网页等,这里介绍最常用的网页分享。

WXWebpageObject wxWebpageObject = new WXWebpageObject();wxWebpageObject.webpageUrl = url;//设置跳转的urlfinal WXMediaMessage mediaMessage = new WXMediaMessage(wxWebpageObject);mediaMessage.title = this.title;//设置标题mediaMessage.description = this.content;//设置内容
mBitmap =  BitmapFactory.decodeStream(new URL(picPath).openStream());Bitmap bitmap = Bitmap.createScaledBitmap(mBitmap,96,96,true);mediaMessage.thumbData = BitmapToBytesUtil.Bitmap2Bytes(bitmap);//图片加工SendMessageToWX.Req  req = new SendMessageToWX.Req();req.transaction = "webpage";//分享类型为网页req.message = mediaMessage;//分享的内容为上面的信息req.scene = SendMessageToWX.Req.WXSceneSession;//设置分享到微信好友
req.scene = SendMessageToWX.Req.WXSceneTimeline;//设置分享到微信朋友圈
PigeonApp.WeixinAPI.sendReq(req);//发送请求
8,分享结果,创建类实现结果回调,代码如下:

public class WXEntryActivity extends Activity implements IWXAPIEventHandler {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        PigeonApp.WeixinAPI.handleIntent(getIntent(),this);    }    @Override    public void onReq(BaseReq baseReq) {    }    @Override    public void onResp(BaseResp baseResp) {        String result = "";        switch (baseResp.errCode) {            case BaseResp.ErrCode.ERR_OK:                result = "分享成功";                break;            case BaseResp.ErrCode.ERR_USER_CANCEL:                result = "分享取消";                break;            case BaseResp.ErrCode.ERR_AUTH_DENIED:                result = "分享被拒绝";                break;            default:                result = "分享返回";                break;        }        ToastUtils.getInstance(this).showToast(result,false);        finish();    }}
根据回调结果进行相关的业务处理即可。

如遇到分享自动返回情况,则确定此处的签名是否是release版本。

1 0
原创粉丝点击