大佬教程收集整理的这篇文章主要介绍了cocos2d手游之微信分享sdk的安卓源代码,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
这是微信分享的一个重要文件,必须放在“工程全名.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.bR_219_11845@pToByteArray(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.bR_219_11845@pToByteArray(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; } } }
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的安卓源代码所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。