微信分享的原生集成

分享集成

现在的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;//设置跳转的url
final 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值