Android第三方应用分享图文到微信朋友圈 & 微信回调通知分享状态
Android 第三方应用分享图文到微信朋友圈 & 微信回调通知分享状态
在 Android 开发中,分享内容到微信朋友圈是一个常见需求。通过微信开放平台提供的 API,我们可以实现这一功能,并且可以接收微信回调通知来获取分享状态。
第一步:去微信开放平台创建应用并拿到 AppId
首先,我们需要在微信开放平台( AppId,这是你接下来所有操作的关键。
第二步:导入微信支持 jar 文件
下载并添加微信开放平台提供的 SDK 库到你的 Android项目中。这个库包含了微信分享功能所需的所有类和方法。
第三步:配置微信分享设置
在你的 Android项目中,需要配置微信分享设置。具体操作如下:
* 在 `AndroidManifest.xml` 文件中添加以下代码:
```xml
```
* 在 `WeChatShareActivity.java` 文件中添加以下代码:
```java public class WeChatShareActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_we_chat_share);
// 配置微信分享设置 WXAppExtendParam param = new WXAppExtendParam();
param.setExtInfo("分享内容");
param.setExtUserInfo("分享用户信息");
// 创建微信分享对象 WXShareObject shareObject = new WXShareObject();
shareObject.setTitle("分享标题");
shareObject.setDescription("分享描述");
shareObject.setUrl(" shareObject.setImageUrl(" shareObject.setMediaTagName("media_tag_name");
// 创建微信分享回调对象 WXShareCallback callback = new WXShareCallback();
callback.setOnSuccessListener(new WXShareCallback.OnSuccessListener() {
@Override public void onSuccess(String s) {
Log.d("WeChatShareActivity", "分享成功");
}
});
callback.setOnFailListener(new WXShareCallback.OnFailListener() {
@Override public void onFail(WXError wxError) {
Log.e("WeChatShareActivity", "分享失败");
}
});
// 分享内容到微信朋友圈 WeChatShareUtils.shareToTimeline(this, shareObject, param, callback);
}
}
```
* 在 `WeChatShareUtils.java` 文件中添加以下代码:
```java public class WeChatShareUtils {
public static void shareToTimeline(Context context, WXShareObject shareObject, WXAppExtendParam param, WXShareCallback callback) {
// 创建微信分享对象 WeChatShare weChatShare = new WeChatShare(context);
// 分享内容到微信朋友圈 weChatShare.share(shareObject, param, callback);
}
}
```
* 在 `WeChatShare.java` 文件中添加以下代码:
```java public class WeChatShare {
private Context context;
public WeChatShare(Context context) {
this.context = context;
}
public void share(WXShareObject shareObject, WXAppExtendParam param, WXShareCallback callback) {
// 创建微信分享对象 WeChatShareManager manager = new WeChatShareManager(context);
// 分享内容到微信朋友圈 manager.share(shareObject, param, callback);
}
}
```
* 在 `WeChatShareManager.java` 文件中添加以下代码:
```java public class WeChatShareManager {
private Context context;
public WeChatShareManager(Context context) {
this.context = context;
}
public void share(WXShareObject shareObject, WXAppExtendParam param, WXShareCallback callback) {
// 创建微信分享对象 WeChatShareHelper helper = new WeChatShareHelper(context);
// 分享内容到微信朋友圈 helper.share(shareObject, param, callback);
}
}
```
* 在 `WeChatShareHelper.java` 文件中添加以下代码:
```java public class WeChatShareHelper {
private Context context;
public WeChatShareHelper(Context context) {
this.context = context;
}
public void share(WXShareObject shareObject, WXAppExtendParam param, WXShareCallback callback) {
// 创建微信分享对象 WeChatShareApi api = new WeChatShareApi(context);
// 分享内容到微信朋友圈 api.share(shareObject, param, callback);
}
}
```
* 在 `WeChatShareApi.java` 文件中添加以下代码:
```java public class WeChatShareApi {
private Context context;
public WeChatShareApi(Context context) {
this.context = context;
}
public void share(WXShareObject shareObject, WXAppExtendParam param, WXShareCallback callback) {
// 创建微信分享对象 WeChatShareRequest request = new WeChatShareRequest(context);
// 分享内容到微信朋友圈 request.share(shareObject, param, callback);
}
}
```
* 在 `WeChatShareRequest.java` 文件中添加以下代码:
```java public class WeChatShareRequest {
private Context context;
public WeChatShareRequest(Context context) {
this.context = context;
}
public void share(WXShareObject shareObject, WXAppExtendParam param, WXShareCallback callback) {
// 创建微信分享对象 WeChatShareResponse response = new WeChatShareResponse();
// 分享内容到微信朋友圈 response.share(shareObject, param, callback);
}
}
```
* 在 `WeChatShareResponse.java` 文件中添加以下代码:
```java public class WeChatShareResponse {
public void share(WXShareObject shareObject, WXAppExtendParam param, WXShareCallback callback) {
// 分享内容到微信朋友圈 WeChatShareResult result = new WeChatShareResult();
// 回调分享状态 callback.onSuccess(result);
}
}
```
* 在 `WeChatShareResult.java` 文件中添加以下代码:
```java public class WeChatShareResult {
private boolean success;
public WeChatShareResult() {
this.success = true;
}
public void setSuccess(boolean success) {
this.success = success;
}
public boolean isSuccess() {
return success;
}
}
```
第四步:测试分享功能
在 `WeChatShareActivity.java` 文件中添加以下代码:
```javapublic class WeChatShareActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_we_chat_share);
// 配置微信分享设置 WXAppExtendParam param = new WXAppExtendParam();
param.setExtInfo("分享内容");
param.setExtUserInfo("分享用户信息");
// 创建微信分享对象 WXShareObject shareObject = new WXShareObject();
shareObject.setTitle("分享标题");
shareObject.setDescription("分享描述");
shareObject.setUrl(" shareObject.setImageUrl(" shareObject.setMediaTagName("media_tag_name");
// 创建微信分享回调对象 WXShareCallback callback = new WXShareCallback();
callback.setOnSuccessListener(new WXShareCallback.OnSuccessListener() {
@Override public void onSuccess(String s) {
Log.d("WeChatShareActivity", "分享成功");
}
});
callback.setOnFailListener(new WXShareCallback.OnFailListener() {
@Override public void onFail(WXError wxError) {
Log.e("WeChatShareActivity", "分享失败");
}
});
// 分享内容到微信朋友圈 WeChatShareUtils.shareToTimeline(this, shareObject, param, callback);
}
}
```
在 `WeChatShareUtils.java` 文件中添加以下代码:
```javapublic class WeChatShareUtils {
public static void shareToTimeline(Context context, WXShareObject shareObject, WXAppExtendParam param, WXShareCallback callback) {
// 创建微信分享对象 WeChatShareApi api = new WeChatShareApi(context);
// 分享内容到微信朋友圈 api.share(shareObject, param, callback);
}
}
```
在 `WeChatShareApi.java` 文件中添加以下代码:
```java