自从微信升级到6.7.3后,就不再支持内部的多图分享了。但是我们还需要分享多张图片到微信朋友圈这时候怎么办呢
方法一
1.在分享微信朋友圈的时候把图片保存在本地 文字复制在粘贴板上,然后弹一个框 提示用户手动打开微信朋友圈 手动去选择照片手动去 粘贴文字。
方法二:
方法二的方法更加人性化。
首先 在build添加 implementation 'com.sch.share:wx-share:1.0.6' 依赖
添加权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
配置
在 strings.xml 中自定义无障碍服务标签。
<string name="wx_share_multi_image_service_label">demo名字【多图分享】</string>
注意:
微信 v6.7.3 分享步骤
若用户未打开无障碍服务:自动跳转图文分享界面,并提示用户粘贴文字选择图片。
若用户已打开无障碍服务:自动跳转图文分享界面,自动粘贴文字选择图片。
微信 v7.0.0 分享步骤
若用户未打开无障碍服务:自动跳转微信,并提示用户打开朋友圈粘贴文字选择图片。
若用户已打开无障碍服务:自动跳转微信,若当前微信处于一级页面(聊天列表、联系人、发现、我),自动打开发现-朋友圈-从相册选择-图文分享-粘贴文字。 若微信处于非一级页面,则需用户手动返回一级页面触发上述流程。
清理临时文件
分享时会产生临时文件,每次分享前都会清理临时所属文件夹,也可以在特定时间调用 API 清理。
WXShareMultiImageHelper.clearTmpFile(activity)
相关代码如下:
public class MainActivity extends AppCompatActivity {
@BindView(R.id.iv_one)
ImageView ivOne;
@BindView(R.id.iv_two)
ImageView ivTwo;
@BindView(R.id.iv_three)
ImageView ivThree;
@BindView(R.id.button_one)
Button buttonOne;
@BindView(R.id.button_two)
Button buttonTwo;
private String url = "https://img-my.csdn.net/uploads/201407/26/1406383290_9329.jpg";
List<String>listdata=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
initImg();
initViewListing();
//访问权限
requestStoragePermission();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
requestStoragePermission();
}
}
private void initImg(){
for(int i=0;i<3;i++) {
listdata.add(url);
}
//加载图片
GlideUtils.lImg(this, url, ivOne);
GlideUtils.lImg(this, url, ivTwo);
GlideUtils.lImg(this, url, ivThree);
}
private void initViewListing() {
buttonOne.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//分享到微信好友
loadImage(new OnLoadImageEndCallback() {
@Override
public void onEnd(List<Bitmap> bitmapList) {
shareToSession(bitmapList,"分享给微信好友");
}
});
}
});
buttonTwo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//分享到微信朋友圈
loadImage(new OnLoadImageEndCallback() {
@Override
public void onEnd(List<Bitmap> bitmapList) {
shareToTimeline(bitmapList,"分享给微信朋友圈");
}
});
}
});
}
private void requestStoragePermission() {
// 申请内存权限。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M &&
!WXShareMultiImageHelper.hasStoragePermission(this)) {
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
}
}
// 分享给好友。
private void shareToSession(List<Bitmap> bitmapList,String content) {
WXShareMultiImageHelper.shareToSession(this, bitmapList, content);
}
// 分享到朋友圈。
private void shareToTimeline(List<Bitmap> bitmapList,String content) {
WXShareMultiImageHelper.shareToTimeline(this, bitmapList, content);
}
private void loadImage(final OnLoadImageEndCallback callback) {
final ProgressDialog dialog = new ProgressDialog(this);
dialog.setMessage("正在加载图片...");
dialog.show();
new Thread(new Runnable() {
@Override
public void run() {
List<Bitmap> bitmapList = new ArrayList<>();
for (String url : listdata) {
bitmapList.add(returnBitMap(url));
}
runOnUiThread(new Runnable() {
@Override
public void run() {
dialog.cancel();
}
});
callback.onEnd(bitmapList);
}
}).start();
}
private interface OnLoadImageEndCallback {
void onEnd(List<Bitmap> bitmapList);
}
public Bitmap returnBitMap(final String url){
Bitmap bitmap=null;
URL imageurl = null;
try {
imageurl = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection)imageurl.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
}
可以参考:
参考文档有:
https://github.com/shichaohui/WXShareMultiImage
具体代码请参考 https://download.csdn.net/download/shihuiyun/10935725