加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2d手游之微信分享SDK接入指南

发布时间:2020-12-14 16:51:54 所属栏目:百科 来源:网络整理
导读:一、微信分享SDK介绍 注:本文为微信Android终端开发工具的新手使用教程,只涉及教授SDK的使用方法,默认读者已经熟悉IDE的基本使用方法(本文以Eclipse为例),以及具有一定的编程知识基础等。 1.申请你的AppID 请到 开发者应用登记页面 进行登记,登记并选

一、微信分享SDK介绍

注:本文为微信Android终端开发工具的新手使用教程,只涉及教授SDK的使用方法,默认读者已经熟悉IDE的基本使用方法(本文以Eclipse为例),以及具有一定的编程知识基础等。


1.申请你的AppID
请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将该应用提交审核,只有审核通过的应用才能进行开发。

2.下载微信终端开发工具包
开发工具包主要包含3部分内容:(其中,只有libammsdk.jar是必须的)
- libammsdk.jar(每个第三方应用必须要导入该sdk库,用于实现与微信的通信)
- API文档(供开发者查阅使用)
- 界面小工具源码(封装了界面表现的工具类,以及一些界面风格)
请前往“资源下载页”下载最新SDK包

3. 把下载下来的libmammsdk.jar直接拖入到安卓根目录的libs文件夹内

二、操作步骤

1. 配置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"/>

2. 注册到微信

要使你的程序启动后微信终端能响应你的程序,必须在代码中向微信终端注册你的id。

IWXAPI api = WXAPIFactory.createWXAPI(this,WXEntryActivity.APP_ID);
api.registerApp(WXEntryActivity.APP_ID);
api.handleIntent(getIntent(),this);

3. 发送图片

在这之前,由于微信4.2以下版本不支持发送到朋友圈,所以有个检测是否能否发送到朋友圈的方法

private static boolean checkCanSendToFriend(IWXAPI api){
		int wxSdkVersion = api.getWXAppSupportAPI();
		if (wxSdkVersion >= TIMELINE_SUPPORTED_VERSION) {
			return true;
		} else {
			return false;
		}
	}

另外一个微信自带的生成唯一标识函数
 private static String buildTransaction(final String type) {
		return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
	}



  //api:IWXAPI的一个实例,已注册到app,mode:发送模式(0为聊天,1为发到朋友圈),smallPng:(缩略图绝对路径),bigPng(大图绝对路径)
  public static void sendImageWithAPI(IWXAPI api,int mode,String smallPng,String bigPng){
    	Log.i("wc","smallPng:" + smallPng + " bigPng:" + bigPng);
    	Bitmap bmpSmall = BitmapFactory.decodeFile(smallPng);
    	Bitmap bmpBig = BitmapFactory.decodeFile(bigPng);
    	if(bmpSmall == null){
    		Log.i("wc","bmp is null");
    		//Toast.makeText(activity,"image path not find,path:" + smallPng,Toast.LENGTH_LONG).show();
    		return;
    	}
    	if(bmpBig == null){
    		Log.i("wc",path:" + bigPng,Toast.LENGTH_LONG).show();
    		return;
    	}
    	
    	WXImageObject imgObj = new WXImageObject(bmpBig);
		
		WXMediaMessage msg = new WXMediaMessage();
		msg.mediaObject = imgObj;
		
		msg.thumbData = Util.bmpToByteArray(bmpSmall,true);  // 设置缩略图

		SendMessageToWX.Req req = new SendMessageToWX.Req();
		req.transaction = buildTransaction("img");
		req.message = msg;
		
		//聊天
		if(mode == 0){
			req.scene = SendMessageToWX.Req.WXSceneSession;
		}
		//朋友圈
		else if((mode == 1) && (checkCanSendToFriend(api)))
		{
			req.scene = SendMessageToWX.Req.WXSceneTimeline;
		}
		else{
			req.scene = SendMessageToWX.Req.WXSceneSession;
		}

		api.sendReq(req);
		Log.i("wc","send img ok");
    }

4. 发送图片链接
//api:IWXAPI的实例,png:图片路径,title:标题,desc:描述,url:链接地址,mode:模式(0聊天1朋友圈)
public static void sendURLWithAPI(IWXAPI api,String png,String title,String 
    		desc,String url,int mode)
    {	
    	Bitmap bmp = BitmapFactory.decodeFile(png);
    	
    	if(bmp == null){
    		//Toast.makeText(activity,path:" + png,Toast.LENGTH_LONG).show();
    		return;
    	}
    	
    	WXWebpageObject webpage = new WXWebpageObject();
		webpage.webpageUrl = url;
		WXMediaMessage msg = new WXMediaMessage(webpage);
		msg.title = title;
		msg.description =  desc;
		Bitmap thumb = bmp;
		msg.thumbData = Util.bmpToByteArray(thumb,true);
		
		SendMessageToWX.Req req = new SendMessageToWX.Req();
		req.transaction = buildTransaction("webpage");
		req.message = msg;

		//聊天
		if(mode == 0){
			req.scene = SendMessageToWX.Req.WXSceneSession;
		}
		//朋友圈
		else if((mode == 1) && (checkCanSendToFriend(api)))
		{
			req.scene = SendMessageToWX.Req.WXSceneTimeline;
		}
		else{
			req.scene = SendMessageToWX.Req.WXSceneSession;
		}
				
		api.sendReq(req);
    }


至此,所有关键要素都已经说明,如果需要原码,请点击查看http://www.52php.cn/article/p-kngrlkpy-bdv.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读