这是微信分享的一个重要文件,必须放在“工程全名.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的安卓源代码所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)