- 使用android的intent实现应用程序之间的通信,将信息通过intent传递给微信。这种方式的局限性在于
a.只能发送图片,而不是文字或者图片+文字。
b.设备必须安装微信才能实现分享。
优势是不用任何第三方sdk,包体积小。不用等待官方审核,随时添加
实现代码:
1>.分享到朋友圈
private void shareToTimeLine(File file) {
Intent intent = new Intent();
ComponentName comp = new ComponentName(“com.tencent.mm”,
“com.tencent.mm.ui.tools.ShareToTimeLineUI”);
intent.setComponent(comp);
intent.setAction(“android.intent.action.SEND”);
intent.setType(“image/*”);
intent.putExtra(Intent.EXTRA_TEXT,”bulabulabula”);
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
startActivity(intent);
}
2>.分享到朋友
private void shareToFriend(File file) {
Intent intent = new Intent();
ComponentName comp = new ComponentName(“com.tencent.mm”,
“com.tencent.mm.ui.tools.ShareImgUI”);
intent.setComponent(comp);
intent.setAction(“android.intent.action.SEND”);
intent.setType(“image/*”);
intent.putExtra(Intent.EXTRA_TEXT,”bulabulabula”);
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
startActivity(intent);
}
-
使用微信的官方sdk包,实现发送文字+图片发送到朋友圈。这种方式不需要设备安装微信。但是包体积会多出微信的sdk大小,100多k,也不是很多。而且需要等待官方审核,一般2天左右,快得话半天,最晚7天。提交审核需要应用签名,应用包名,icon,应用下载地址等,这些需要提前准备好,不然项目后期提交的话,说不定微信给你审核7天就废了。废话不多说,上代码:1>定义成员
private static final String APP_ID = “wx5a1ddf4936fe928b”;
private static IWXAPI api;
2>.初始化
api = WXAPIFactory.createWXAPI(this, APP_ID, true);
api.registerApp(APP_ID);
3>.分享到朋友
public static void sendMsgToFriend() {
if (api.openWXApp()) {
// 初始化一个对象WebpageObject
WXTextObject textObject = new WXTextObject();
textObject.text = “不拉不拉不拉,”;
// 媒体对象中
WXMediaMessage msg = new WXMediaMessage(textObject);
msg.title = “title”;
msg.description = “分享给你的好友,让更多的人来玩!”;
// 建立请求对象
SendMessageToWX.Req req = new SendMessageToWX.Req();
// transaction是用来表示一个请求的唯一标示符
req.transaction = buildTransaction(“textObject”);
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneSession;
// 使用通信类发送
api.sendReq(req);
} else {
Toast.makeText(instance, “启动微信失败!”, Toast.LENGTH_SHORT).show();
}
}
4>.分享到朋友圈
- 使用第三方的分享工具,比如shareSDK。这种方式最强大(支持多种社交平台)。并且不要求设备安装微信。