package com.intel.cordova.wechat;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaInterface;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CordovaWebView;
import org.json.JSONArray;
import org.json.JSONException;
import com.tencent.mm.sdk.modelmsg.SendMessageToWX;
import com.tencent.mm.sdk.modelmsg.WXMediaMessage;
import com.tencent.mm.sdk.modelmsg.WXTextObject;
import com.tencent.mm.sdk.openapi.IWXAPI;
import com.tencent.mm.sdk.openapi.WXAPIFactory;
import android.content.Context;
import android.telephony.TelephonyManager;
import android.util.Log;
import android.widget.Toast;
public class WechatPlugin extends CordovaPlugin {
public static final String TAG = "WechatPlugin";
public static final String ACTION_GET_CARRIER_CODE = "sendTextAPI";
private Context context = null;
private CallbackContext callbackContext = null;
private IWXAPI api = null; // here is a problem is there any method to load the lib of wechat automatically
private static final String APP_ID = "wx3fd0e864160cedf4";
public void initialize(CordovaInterface cordova, CordovaWebView webView) {
super.initialize(cordova, webView);
context = this.cordova.getActivity().getApplicationContext();
}
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
this.callbackContext = callbackContext;
if(ACTION_GET_CARRIER_CODE.equals(action)) {
api = WXAPIFactory.createWXAPI(context, APP_ID);
api.registerApp(APP_ID);
String text = "Wechat Text";
WXTextObject textObj = new WXTextObject();
textObj.text = text;
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = textObj;
msg.description = text;
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = String.valueOf(System.currentTimeMillis());
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneSession;
// req.openId = getOpenId();
boolean sendResult = api.sendReq(req);
Toast.makeText(context, "Send Result = " + sendResult, Toast.LENGTH_LONG).show();
// callbackContext.success("Send success!");
return true;
}
else {
callbackContext.error("Send fail!");
return false;
}
}
}