cocos2d手游之微信分享sdk的安卓源代码

cocos2d手游之微信分享sdk的安卓源代码,第1张

概述这是微信分享的一个重要文件,必须放在“工程全名.wxapi”的目录下面。例如工程名为org.cocos2dx.lua,则WXEntryActivity.java就必须建立在org.cocos2dx.lua.wxapi的目录。 1.WXEntryActivity.java package com.mz.maoxian.lenovo.wxapi;import java.io.IOExcepti

这是微信分享的一个重要文件,必须放在“工程全名.wxAPI”的目录下面。例如工程名为org.cocos2dx.lua,则WXEntryActivity.java就必须建立在org.cocos2dx.lua.wxAPI的目录。

1.WXEntryActivity.java


package com.mz.maoxian.lenovo.wxAPI;import java.io.IOException;import java.io.inputStream;import org.cocos2dx.lua.AppActivity;import com.tencent.mm.sdk.openAPI.BaseReq;import com.tencent.mm.sdk.openAPI.BaseResp;import com.tencent.mm.sdk.openAPI.ConstantsAPI;import com.tencent.mm.sdk.openAPI.SendMessagetoWX;import com.tencent.mm.sdk.openAPI.IWXAPI;import com.tencent.mm.sdk.openAPI.IWXAPIEventHandler;import com.tencent.mm.sdk.openAPI.WXAPIFactory;import com.tencent.mm.sdk.openAPI.WXImageObject;import com.tencent.mm.sdk.openAPI.WXMediaMessage;import com.tencent.mm.sdk.openAPI.WXTextObject;import com.tencent.mm.sdk.openAPI.WXWebpageObject;import androID.app.Activity;import androID.content.Intent;import androID.content.res.AssetManager;import androID.graphics.Bitmap;import androID.graphics.BitmapFactory;import androID.os.Bundle;import androID.util.Log;import androID.Widget.Toast;public class WXEntryActivity extends Activity implements IWXAPIEventHandler {		private static final int TIMEliNE_SUPPORTED_VERSION = 0x21020001;	public static final String APP_ID = "wxc8a10e8a59add48b";	// IWXAPI 是第三方app和微信通信的openAPI接口    private static IWXAPI API;        public static voID myLog(String str)    {    	Log.i("wc",str);    }	    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        myLog("onCreate in Weixin entry");        this.initWX();    }    private static String buildTransaction(final String type) {		return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();	}    public voID initWX(){    	 // 通过WXAPIFactory工厂,获取IWXAPI的实例    	API = WXAPIFactory.createWXAPI(this,APP_ID,false);    	API.registerapp(APP_ID);        API.handleIntent(getIntent(),this);    }//    private static Bitmap getimageFromAssetsfile(AppActivity activity,String filename)  //	  {  //	      Bitmap image = null;  //	      AssetManager am = activity.getResources().getAssets();  //	      try  //	      {  //	          inputStream is = am.open(filename);  //	          image = BitmapFactory.decodeStream(is);  //	          is.close();  //	      }  //	      catch (IOException e)  //	      {  //	    	  Log.i("wc","getimageFromAssetsfile error");//	          e.printstacktrace();  //	      }  //	  //	      return image;  //	  //	  }      public static voID sendImageWithAPI(IWXAPI API,AppActivity activity,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){    		myLog("bmp is null");    		Toast.makeText(activity,"image path not find,path:" + smallPng,Toast.LENGTH_LONG).show();    		return;    	}    	if(bmpBig == null){    		myLog("bmp is null");    		Toast.makeText(activity,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);		myLog("send img ok");    }    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);    }        	@OverrIDe	protected voID onNewIntent(Intent intent) {		super.onNewIntent(intent);		Log.i("wc","onNewIntent");//		setIntent(intent);//        API.handleIntent(intent,this);	}	// 微信发送请求到第三方应用时,会回调到该方法	@OverrIDe	public voID onReq(BaseReq req) {				Log.i("wc","onReq");				switch (req.getType()) {		case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:			//goToGetMsg();					break;		case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:			//goToShowMsg((ShowMessageFromWX.Req) req);			break;		default:			break;		}	}	// 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法	@OverrIDe	public voID onResp(BaseResp resp) {				Log.i("wc","onResp"); 		Log.i("wc",String.format("%d",resp.errCode));		switch (resp.errCode) {		case BaseResp.ErrCode.ERR_OK:						break;		case BaseResp.ErrCode.ERR_USER_CANCEL:			break;		case BaseResp.ErrCode.ERR_AUTH_DENIED:			break;		default:						break;		}				if(resp.errCode == BaseResp.ErrCode.ERR_OK)		{			backToAppActivityWithSuccess(true);		}		else		{			backToAppActivityWithSuccess(false);		}					}	private voID backToAppActivityWithSuccess(boolean success){				if(success){			AppActivity.nativeSendMessage("addevent;104");		}else{			AppActivity.nativeSendMessage("addevent;105");		}				Intent intent = new Intent();		intent.setClass(WXEntryActivity.this,AppActivity.class);		startActivity(intent);		finish();		((WXEntryActivity) WXEntryActivity.this).overrIDePendingTransition(0,0);	}			private static boolean checkCanSendToFrIEnd(IWXAPI API){		int wxsdkVersion = API.getWXAppSupportAPI();		if (wxsdkVersion >= TIMEliNE_SUPPORTED_VERSION) {			return true;		} else {			return false;		}	}		}

2. 用法代码
private static IWXAPI API = null;private voID senDWeixinImage(int mode,String bigPng){		if(API == null)		{			API = WXAPIFactory.createWXAPI(this,WXEntryActivity.APP_ID);			API.registerapp(WXEntryActivity.APP_ID);		}		WXEntryActivity.sendImageWithAPI(API,this,mode,smallPng,bigPng);	}	private voID senDWeixinURL(String png,String desc,int mode){		if(API == null)		{			API = WXAPIFactory.createWXAPI(this,WXEntryActivity.APP_ID);			API.registerapp(WXEntryActivity.APP_ID);		}		WXEntryActivity.sendURLWithAPI(API,png,Title,desc,url,mode);	}
总结

以上是内存溢出为你收集整理的cocos2d手游之微信分享sdk的安卓源代码全部内容,希望文章能够帮你解决cocos2d手游之微信分享sdk的安卓源代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1077022.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存