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

编程入门 行业动态 更新时间:2024-10-08 00:31:35

cocos2d手游之微信分享sdk的安卓源<a href=https://www.elefans.com/category/jswz/34/1771412.html style=代码"/>

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);}@Overridepublic 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, "image path not find, 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, AppActivity activity, String png, String title, String desc, String url, int mode){	Bitmap bmp = BitmapFactory.decodeFile(png);if(bmp == null){Toast.makeText(activity, "image path not find, 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);}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);Log.i("wc", "onNewIntent");
//		setIntent(intent);
//        api.handleIntent(intent, this);}// 微信发送请求到第三方应用时,会回调到该方法@Overridepublic 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;}}// 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法@Overridepublic 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 smallPng, 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 title, String desc, String url, int mode){if(api == null){api = WXAPIFactory.createWXAPI(this, WXEntryActivity.APP_ID);api.registerApp(WXEntryActivity.APP_ID);}WXEntryActivity.sendURLWithAPI(api, this, png, title, desc, url, mode);}


更多推荐

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

本文发布于:2024-03-15 10:47:48,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1738725.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:代码   cocos2d   sdk   卓源

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!