这些都完成,审核通过后我们会得到AppID。
于是我们也是有身份了人了。
那么这个应用名称会在那里显示呢?
请叫我土豪。
public static final String APP_ID= "wxeb************";
// IWXAPI 是第三方app和微信通信的openapi接口
private IWXAPI api;
api = WXAPIFactory.createWXAPI(this, APP_ID, true);
api.registerApp(APP_ID);
这一段代码塞到onCreate()里面就行了。
Intent intent=new Intent(this, ShareActivity.class);
Bundle bundle=new Bundle();
bundle.putString("text", mLocationDesTextView.getText().toString());
intent.putExtras(bundle);
startActivity(intent);
点击文字按钮,弹出对话框,可以在里面修改要分享的文字。
findViewById(R.id.send_text).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final EditText editor = new EditText(ShareActivity.this);
editor.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
editor.setText(bundle.getString("text"));
new AlertDialog.Builder(ShareActivity.this).setTitle("send text").setView(editor).setPositiveButton("send", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String text = editor.getText().toString();
if (text == null || text.length() == 0) {
return;
}
// 初始化一个WXTextObject对象
WXTextObject textObj = new WXTextObject();
textObj.text = text;
// 用WXTextObject对象初始化一个WXMediaMessage对象
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = textObj;
// 发送文本类型的消息时,title字段不起作用
// msg.title = "Will be ignored";
msg.description = text;
// 构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("text"); // transaction字段用于唯一标识一个请求
req.message = msg;
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
// 调用api接口发送数据到微信
api.sendReq(req);
finish();
}
}).setNegativeButton("cancel", null).create().show();
}
});
private String buildTransaction(final String type) {
return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
}
点击send之后,执行api.sendReq(req),就将内容发送出去啦。
b. 实现IWXAPIEventHandler接口,微信发送的请求将回调到onReq方法,发送到微信请求的响应结果将回调到onResp方法
public class WXEntryActivity extends Activity implements IWXAPIEventHandler{
IWXAPI api = WXAPIFactory.createWXAPI(this, "wxeb2************");
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// setContentView(R.layout.send_to_wx);
api.handleIntent(getIntent(), this);
}
@Override
public void onReq(BaseReq arg0) {
// TODO Auto-generated method stub
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
@Override
public void onResp(BaseResp resp) {
// TODO Auto-generated method stub
int result = 0;
switch (resp.errCode) {
case BaseResp.ErrCode.ERR_OK:
result = 0;
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
result = -2;
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:
result = -4;
break;
default:
result = 123;
break;
}
Toast.makeText(this, Integer.toString(result), Toast.LENGTH_LONG).show();
finish();
}
}
当微信发送请求到你的应用,将通过IWXAPIEventHandler接口的onReq方法进行回调,类似的,应用请求微信的响应结果将通过onResp回调。