package com.tejia.lijin.app.util.web;
|
|
import android.Manifest;
|
import android.app.Activity;
|
import android.content.Intent;
|
import android.content.pm.PackageManager;
|
import android.graphics.Bitmap;
|
import android.graphics.BitmapFactory;
|
import android.media.MediaScannerConnection;
|
import android.net.Uri;
|
import android.os.Bundle;
|
import android.os.Environment;
|
import android.os.Handler;
|
import android.os.Message;
|
import android.util.Log;
|
import android.view.Gravity;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.webkit.JavascriptInterface;
|
import android.webkit.WebView;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.bumptech.glide.Glide;
|
import com.bytedance.sdk.openadsdk.AdSlot;
|
import com.bytedance.sdk.openadsdk.TTAdConstant;
|
import com.bytedance.sdk.openadsdk.TTAdNative;
|
import com.bytedance.sdk.openadsdk.TTAdSdk;
|
import com.bytedance.sdk.openadsdk.TTRewardVideoAd;
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.kepler.jd.Listener.OpenAppAction;
|
import com.kepler.jd.login.KeplerApiManager;
|
import com.kepler.jd.sdk.bean.KeplerAttachParameter;
|
import com.tejia.lijin.app.Interface.WebInterface;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.callBack.GeneralBackCallback;
|
import com.tejia.lijin.app.callBack.PermissionInterface;
|
import com.tejia.lijin.app.entity.ImgText;
|
import com.tejia.lijin.app.entity.share.ShareImageEntity;
|
import com.tejia.lijin.app.ui.dialog.ShapeLoadingDialog;
|
import com.tejia.lijin.app.ui.invite.ShareBrowserActivity;
|
import com.tejia.lijin.app.util.JumpActivityUtil;
|
import com.tejia.lijin.app.util.PermissionHelper;
|
import com.tejia.lijin.app.util.ToastUtil;
|
import com.tejia.lijin.app.util.Tools;
|
import com.tejia.lijin.app.util.baichuan.AlibcTradeUtil;
|
import com.tejia.lijin.app.util.share.ShareImageUtil;
|
import com.tejia.lijin.app.util.share.ShareTextUtil;
|
import com.wpc.library.util.common.DimenUtils;
|
import com.wpc.library.util.common.StringUtils;
|
import com.wpc.library.util.security.MD5Utils;
|
import com.ysh.wpc.appupdate.download.DownLoadFile;
|
|
import org.json.JSONArray;
|
import org.json.JSONException;
|
import org.json.JSONObject;
|
|
import java.io.File;
|
import java.io.IOException;
|
import java.io.InputStream;
|
import java.net.HttpURLConnection;
|
import java.net.MalformedURLException;
|
import java.net.URL;
|
import java.util.ArrayList;
|
import java.util.Iterator;
|
import java.util.List;
|
|
import androidx.core.content.ContextCompat;
|
import wendu.dsbridge.CompletionHandler;
|
|
public class RebateJavaInterfaceBS extends BaseRebateJavaInterfaceBS implements PermissionInterface {
|
|
Activity mContext;
|
TextView tv_top_bar_middle, tv_top_bar_left2, tv_top_bar_right;
|
ImageView iv_right;
|
WebView webview;
|
ShapeLoadingDialog pd;
|
private boolean boo = false;
|
private PermissionHelper mPermissionsChecker; // 权限检测器
|
|
public RebateJavaInterfaceBS(Activity activity, WebView webview) {
|
super(activity);
|
mContext = activity;
|
this.webview = webview;
|
boo = true;
|
}
|
|
public RebateJavaInterfaceBS(Activity activity, TextView tv_top_bar_middle
|
, TextView tv_top_bar_left2, TextView tv_top_bar_right
|
, ImageView iv_right, WebView webview, ShapeLoadingDialog pd) {
|
super(activity);
|
mContext = activity;
|
this.tv_top_bar_middle = tv_top_bar_middle;
|
this.tv_top_bar_left2 = tv_top_bar_left2;
|
this.tv_top_bar_right = tv_top_bar_right;
|
this.iv_right = iv_right;
|
this.webview = webview;
|
this.pd = pd;
|
}
|
|
@JavascriptInterface
|
public void setTitle(final Object title) {
|
// tv_top_bar_middle.setText(title);
|
if (!boo)
|
tv_top_bar_middle.post(new Runnable() {
|
@Override
|
public void run() {
|
if (null != title && !StringUtils.isEmpty((title + "").trim()))
|
tv_top_bar_middle.setText(title + "");
|
}
|
});
|
}
|
|
/**
|
* 保存网络图片
|
*
|
* @param url
|
*/
|
@JavascriptInterface
|
public void savePicture(Object url) {
|
if (mPermissionsChecker == null)
|
mPermissionsChecker = new PermissionHelper(mContext, this);
|
if (mPermissionsChecker.lacksPermissions(getPermissions())) { //存储权限未开启
|
mPermissionsChecker.showNormalDialog();
|
} else {//存储权限已开
|
String md5 = MD5Utils.getMD532(url.toString());
|
String path = com.wpc.library.util.Environment.getExternalStorageDirectory()
|
+ "/blksapp";
|
File file = new File(path + "/" + md5 + ".jpg");
|
if (!file.exists()) {
|
try {
|
File resultFile = Tools.saveImageFromPathToSdCard(mContext, url.toString(), path, md5 + ".jpg");
|
if (resultFile != null) {
|
Toast.makeText(mContext, "图片保存到相册成功", Toast.LENGTH_LONG).show();
|
}
|
} catch (Exception e) {
|
Toast.makeText(mContext, "图片保存失败", Toast.LENGTH_LONG).show();
|
if (file.exists())
|
file.delete();
|
}
|
|
} else {
|
Toast.makeText(mContext, "图片已经保存!", Toast.LENGTH_LONG).show();
|
}
|
}
|
}
|
|
|
@JavascriptInterface
|
public void savePictures(Object urls) {
|
if (mPermissionsChecker == null)
|
mPermissionsChecker = new PermissionHelper(mContext, this);
|
if (mPermissionsChecker.lacksPermissions(getPermissions())) { //存储权限未开启
|
mPermissionsChecker.showNormalDialog();
|
} else {//存储权限已开
|
List<String> urlList = new ArrayList<>();
|
try {
|
JSONArray array = new JSONArray(urls.toString());
|
for (int i = 0; i < array.length(); i++) {
|
urlList.add(array.optString(i));
|
}
|
} catch (Exception e) {
|
|
}
|
|
if (urlList != null && urlList.size() > 0)
|
try {
|
startDownLoadImages(urlList, type, 2);
|
} catch (Exception e) {
|
}
|
}
|
}
|
|
|
@JavascriptInterface
|
public void setTopMenuRightIcon(Object args) throws JSONException {
|
JSONObject json = new JSONObject(args.toString());
|
final String picUrl = json.optString("picUrl");
|
final String jsCallback = json.optString("jsCallback");
|
|
if (!boo)
|
iv_right.post(new Runnable() {
|
@Override
|
public void run() {
|
iv_right.setVisibility(View.VISIBLE);
|
Glide.with(mContext).load(picUrl).into(iv_right);
|
iv_right.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
// Log.e("mResult", jsCallback);
|
webview.loadUrl("javascript:" + jsCallback);
|
}
|
});
|
}
|
});
|
}
|
|
@JavascriptInterface
|
public void jumpPageWithFinishCurrentPage(Object args) throws JSONException {
|
JSONObject json = new JSONObject(args.toString());
|
final String pageClassName = json.optString("pageClassName");
|
final String paramJson = json.optString("paramJson");
|
|
|
Intent intent = null;
|
JSONObject param = null;
|
try {
|
if (StringUtils.isEmpty(paramJson)) {
|
param = null;
|
} else {
|
param = new JSONObject(paramJson);
|
}
|
if (StringUtils.isEmpty(pageClassName)) {
|
return;
|
} else {
|
intent = new Intent(mContext, Class.forName(JumpActivityUtil.filterActivityName(pageClassName)));
|
}
|
} catch (JSONException e) {
|
param = null;
|
e.printStackTrace();
|
} catch (ClassNotFoundException e) {
|
e.printStackTrace();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
if (null != param) {
|
@SuppressWarnings("unchecked")
|
Iterator<String> its = param.keys();
|
while (its.hasNext()) {
|
String key = its.next();
|
String value = param.optString(key);
|
intent.putExtra(key, value);
|
}
|
}
|
mContext.startActivity(intent);
|
if (!boo)
|
mContext.finish();
|
}
|
|
|
@JavascriptInterface
|
public void hiddenTopMenuCloseBtn(Object obj) {
|
if (!boo)
|
tv_top_bar_left2.setVisibility(View.GONE);
|
}
|
|
|
@JavascriptInterface
|
public void hideLoading(Object obj) {
|
if (!boo)
|
iv_right.post(new Runnable() {
|
@Override
|
public void run() {
|
if (pd != null && pd.isShowing())
|
pd.dismiss();
|
}
|
});
|
|
}
|
|
@JavascriptInterface
|
public void showLoading(Object obj) {
|
if (!boo)
|
iv_right.post(new Runnable() {
|
@Override
|
public void run() {
|
if (pd == null) {
|
pd = new ShapeLoadingDialog.Builder(mContext).build();
|
}
|
pd.show();
|
}
|
});
|
|
}
|
|
@JavascriptInterface
|
public void finishPage(Object obj) {
|
if (!boo)
|
iv_right.post(new Runnable() {
|
@Override
|
public void run() {
|
mContext.finish();
|
}
|
});
|
}
|
|
|
@JavascriptInterface
|
public void setTopMenuRightText(Object args) throws JSONException {
|
JSONObject json = new JSONObject(args.toString());
|
final String callbackMethod = json.optString("callbackMethod");
|
final String text = json.optString("text");
|
|
if (!boo)
|
tv_top_bar_right.post(new Runnable() {
|
@Override
|
public void run() {
|
tv_top_bar_right.setText(text);
|
tv_top_bar_right.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
webview.loadUrl("javascript:" + callbackMethod);
|
}
|
});
|
}
|
});
|
}
|
|
|
public List<ImgText> mList = new ArrayList<>();
|
|
@JavascriptInterface
|
public void addMenu(Object str) {
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<ImgText> list = gson.fromJson(str + "", new TypeToken<List<ImgText>>() {
|
}.getType());
|
if (mList.size() > 0)
|
mList.clear();
|
mList.addAll(list);
|
}
|
|
|
@JavascriptInterface
|
public void showSharePanel(Object obj) {
|
webShareDesc.setShare();
|
}
|
|
//文本分享
|
@JavascriptInterface
|
public void shareText(Object args) throws JSONException {
|
JSONObject json = new JSONObject(args.toString());
|
int type = json.optInt("type");
|
final String text = json.optString("text");
|
|
if (type == 1) {
|
ShareTextUtil.shareWXTextByIntent(mContext, text);
|
} else if (type == 2) {
|
ShareTextUtil.shareWXCircleTextByIntent(mContext, text);
|
} else if (type == 3) {
|
ShareTextUtil.shareQQTextByIntent(mContext, text);
|
} else if (type == 4) {
|
ShareTextUtil.shareQQZoneTextByIntent(mContext, text);
|
} else {
|
ShareTextUtil.shareSinaTextByIntent(mContext, text);
|
}
|
}
|
|
//图片分享 "type":1,//1-微信 2-朋友圈 3-QQ 4-空间 5-微博 6-更多
|
@JavascriptInterface
|
public void shareImg(Object args) throws JSONException {
|
|
JSONObject json = new JSONObject(args.toString());
|
int type = json.optInt("type");
|
final String url = json.optString("url");
|
|
//检测权限
|
String[] str = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
|
Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
if (lacksPermissions(str)) {//缺少权限
|
generalBackCallback.onSuccess(type, url);
|
} else {
|
this.type = type;
|
this.imgurl = url;
|
new Thread() {
|
public void run() {
|
Bitmap bitmap = getNetImage(url);//从网络下载图片
|
Message msg = new Message();
|
Bundle data = new Bundle();
|
data.putParcelable("bitmap", bitmap);
|
msg.setData(data);
|
msg.what = 1001;
|
handler.sendMessage(msg);
|
}
|
}.start();
|
}
|
|
}
|
|
/**
|
* 多图分享
|
*
|
* @param args
|
*/
|
@JavascriptInterface
|
public void shareImgs(Object args) throws JSONException {
|
JSONObject json = new JSONObject(args.toString());
|
int type = json.optInt("type");
|
final String urls = json.optString("urls");
|
|
|
String[] str = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
|
Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
if (lacksPermissions(str)) {//缺少权限
|
generalBackCallback.onSuccess(type, null);
|
} else {
|
List<String> urlList = new ArrayList<>();
|
try {
|
JSONArray array = new JSONArray(urls);
|
for (int i = 0; i < array.length(); i++) {
|
urlList.add(array.optString(i));
|
}
|
} catch (Exception e) {
|
|
}
|
|
if (urlList != null && urlList.size() > 0)
|
try {
|
startDownLoadImages(urlList, type, 1);
|
} catch (Exception e) {
|
|
}
|
}
|
}
|
|
/**
|
* 淘宝授权
|
*
|
* @param url
|
*/
|
@JavascriptInterface
|
public void tbAuth(Object url) {
|
if (StringUtils.isEmpty(url + ""))
|
return;
|
AlibcTradeUtil.openAuthLink(mContext, url + "");
|
}
|
|
/**
|
* 跳转到京东
|
*
|
* @param url
|
*/
|
@JavascriptInterface
|
public void jumpJD(Object url) {
|
if (StringUtils.isEmpty(url + ""))
|
return;
|
KeplerApiManager.getWebViewService().openAppWebViewPage(mContext, url + "", new KeplerAttachParameter(), new OpenAppAction() {
|
@Override
|
public void onStatus(final int status, final String url) {
|
mContext.runOnUiThread(new Runnable() {
|
@Override
|
public void run() {
|
if (status == OpenAppAction.OpenAppAction_result_APP) {
|
//呼京东成功
|
Log.e("mResult", "呼京东成功");
|
} else if (status == OpenAppAction.OpenAppAction_start) {
|
//开始状态未必一定执行,
|
Log.e("mResult", "开始呼起京东");
|
} else {
|
//唤起京东失败
|
Log.e("mResult", "唤起京东失败" + status);
|
Intent intent = new Intent(mContext, ShareBrowserActivity.class);
|
intent.putExtra("url", url);
|
mContext.startActivity(intent);
|
}
|
}
|
});
|
}
|
});
|
}
|
|
|
private TTRewardVideoAd mttRewardVideoAd;
|
|
@JavascriptInterface
|
public void showAwardAd(Object args, final CompletionHandler handler) throws JSONException {
|
JSONObject json = new JSONObject(args.toString());
|
String type = json.optString("type");
|
final String pid = json.optString("pid");
|
final com.alibaba.fastjson.JSONObject result = new com.alibaba.fastjson.JSONObject();
|
|
webview.post(new Runnable() {
|
@Override
|
public void run() {
|
|
TTAdNative mTTAdNative = TTAdSdk.getAdManager().createAdNative(mContext);
|
AdSlot adSlot = new AdSlot.Builder()
|
.setCodeId(pid)
|
.setRewardName("金币") //奖励的名称 选填
|
.setRewardAmount(3) //奖励的数量 选填
|
// .setUserID("tag123")//tag_id
|
.setMediaExtra("media_extra") //附加参数
|
.setOrientation(TTAdConstant.VERTICAL) //必填参数,期望视频的播放方向:TTAdConstant.HORIZONTAL 或 TTAdConstant.VERTICAL
|
.build();
|
|
mTTAdNative.loadRewardVideoAd(adSlot, new TTAdNative.RewardVideoAdListener() {
|
//请求广告失败
|
@Override
|
public void onError(int code, String message) {
|
com.alibaba.fastjson.JSONObject result = new com.alibaba.fastjson.JSONObject();
|
result.put("code", 1);
|
result.put("msg", message);
|
handler.complete(result);
|
}
|
|
//视频广告加载后,视频资源缓存到本地的回调,在此回调后,播放本地视频,流畅不阻塞。
|
@Override
|
public void onRewardVideoCached() {
|
|
//开发者做一个标识
|
if (mttRewardVideoAd != null) {
|
mttRewardVideoAd.showRewardVideoAd(mContext, TTAdConstant.RitScenes.CUSTOMIZE_SCENES, "scenes_test");
|
mttRewardVideoAd = null;
|
}
|
com.alibaba.fastjson.JSONObject result = new com.alibaba.fastjson.JSONObject();
|
result.put("code", 100);
|
result.put("msg", "缓存成功");
|
handler.setProgressData(result);
|
}
|
|
//视频广告的素材加载完毕,比如视频url等,在此回调后,可以播放在线视频,网络不好可能出现加载缓冲,影响体验。
|
@Override
|
public void onRewardVideoAdLoad(TTRewardVideoAd ad) {
|
//开发者做一个标识
|
mttRewardVideoAd = ad;
|
mttRewardVideoAd.setRewardAdInteractionListener(new TTRewardVideoAd.RewardAdInteractionListener() {
|
@Override
|
public void onAdShow() {
|
|
}
|
|
@Override
|
public void onAdVideoBarClick() {
|
|
}
|
|
@Override
|
public void onAdClose() {
|
|
}
|
|
@Override
|
public void onVideoComplete() {
|
|
}
|
|
@Override
|
public void onVideoError() {
|
com.alibaba.fastjson.JSONObject result = new com.alibaba.fastjson.JSONObject();
|
result.put("code", 2);
|
result.put("msg", "视频出错");
|
handler.complete(result);
|
}
|
|
@Override
|
public void onRewardVerify(boolean b, int i, String s, int i1, String s1) {
|
com.alibaba.fastjson.JSONObject result = new com.alibaba.fastjson.JSONObject();
|
result.put("code", 0);
|
result.put("msg", "广告展示完成");
|
handler.complete(result);
|
}
|
|
@Override
|
public void onSkippedVideo() {
|
|
}
|
});
|
}
|
});
|
|
}
|
});
|
|
}
|
|
|
@JavascriptInterface
|
public void toastAwardSuccess(final Object msg) {
|
|
webview.post(new Runnable() {
|
@Override
|
public void run() {
|
View view = LayoutInflater.from(mContext).inflate(R.layout.item_reward_ad_success, null);
|
TextView tv_content = view.findViewById(R.id.tv_content);
|
tv_content.setText(msg + "");
|
ToastUtil.showToast(view, view.getContext(), Toast.LENGTH_SHORT, Gravity.CENTER);
|
}
|
});
|
}
|
|
@JavascriptInterface
|
public void toastAwardFail(final Object msg) {
|
webview.post(new Runnable() {
|
@Override
|
public void run() {
|
View view = LayoutInflater.from(mContext).inflate(R.layout.item_reward_ad_fail, null);
|
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(DimenUtils.getScreenWidth(mContext) * 4 / 5, LinearLayout.LayoutParams.WRAP_CONTENT);
|
view.setLayoutParams(params);
|
TextView tv_content = view.findViewById(R.id.tv_content);
|
tv_content.setText(msg + "");
|
ToastUtil.showToast(view, view.getContext(), Toast.LENGTH_SHORT, Gravity.CENTER);
|
}
|
});
|
}
|
|
|
int type;
|
String imgurl;
|
Handler handler = new Handler() {
|
@Override
|
public void handleMessage(Message msg) {
|
super.handleMessage(msg);
|
if (msg.what == 1001) {
|
Bitmap bitmap = msg.getData().getParcelable("bitmap");
|
shareImg(type, "", "", bitmap);
|
}
|
}
|
};
|
|
|
private Handler shareHandler = new Handler() {
|
@Override
|
public void handleMessage(Message msg) {
|
super.handleMessage(msg);
|
ArrayList<Uri> uriList = new ArrayList<Uri>();
|
if (shareTempImgEntity != null)
|
for (ShareImageEntity entity : shareTempImgEntity)
|
uriList.add(Tools.getImageContentUri(mContext, new File(entity.getFilePath())));
|
switch (msg.what) {
|
case 1://微信
|
ShareImageUtil.shareWXPictureByIntent(mContext, uriList);
|
break;
|
case 2://朋友圈
|
ShareImageUtil.shareWXCirclePictureByIntent(mContext, uriList);
|
break;
|
case 3://QQ
|
ShareImageUtil.shareQQPictureByIntent(mContext, uriList);
|
break;
|
|
case 4://QQ空间
|
ShareImageUtil.shareQQZonePictureByIntent(mContext, uriList);
|
break;
|
case 5://微博
|
ShareImageUtil.shareSinaPictureByIntent(mContext, uriList);
|
break;
|
case 6://更多
|
Intent mulIntent = new Intent(Intent.ACTION_SEND_MULTIPLE);
|
mulIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uriList);
|
mulIntent.setType("image/png");
|
mContext.startActivity(Intent.createChooser(mulIntent, "多图文件分享"));
|
break;
|
}
|
|
}
|
};
|
|
private ArrayList<ShareImageEntity> shareTempImgEntity;
|
|
/**
|
* 下载图片
|
*
|
* @param urlList
|
* @param platform
|
* @param type 1-分享 2-下载
|
* @throws Exception
|
*/
|
private void startDownLoadImages(List<String> urlList, final int platform, final int type) throws Exception {
|
String path = null;
|
|
if (type == 1) {
|
path = Environment.getExternalStorageDirectory()
|
+ "/rebateshare";
|
} else if (type == 2) {
|
path = com.wpc.library.util.Environment.getExternalStorageDirectory()
|
+ "/blksapp";
|
}
|
final File storageDir = new File(path);
|
List<String> filePathList = new ArrayList<>();
|
for (String picture : urlList) {
|
String fileName = storageDir.getPath() + "/" + System.currentTimeMillis() + "_" + (long) (Math.random() * 10000000000L) + ".png";
|
filePathList.add(fileName);
|
}
|
|
if (urlList.size() > 0) {
|
showLoading(null);
|
shareTempImgEntity = new ArrayList<>();
|
//去下载
|
new DownLoadFile().downloadMultiImages(urlList, filePathList, mContext, new DownLoadFile.FileDownLoadListener() {
|
@Override
|
public void finish(List<File> fileList) {
|
hideLoading(null);
|
//完成下载
|
|
if (fileList != null)
|
for (File f : fileList) {
|
shareTempImgEntity.add(new ShareImageEntity(f.getPath()));
|
}
|
//下载成功
|
if (type == 1)
|
shareHandler.sendEmptyMessage(platform);
|
else {
|
final String[] filePaths = new String[fileList.size()];
|
for (int i = 0; i < filePaths.length; i++)
|
filePaths[i] = fileList.get(i).getPath();
|
shareHandler.post(new Runnable() {
|
@Override
|
public void run() {
|
MediaScannerConnection.scanFile(mContext, filePaths, null, null);
|
Toast.makeText(mContext, "保存到相册成功", Toast.LENGTH_SHORT).show();
|
}
|
});
|
}
|
}
|
|
@Override
|
public void process(int count) {
|
}
|
});
|
} else {
|
hideLoading(null);
|
if (type == 1)
|
shareHandler.sendEmptyMessage(platform);
|
else {
|
shareHandler.post(new Runnable() {
|
@Override
|
public void run() {
|
Toast.makeText(mContext, "保存到相册成功", Toast.LENGTH_SHORT).show();
|
}
|
});
|
}
|
}
|
}
|
|
|
/*******分享图片**/
|
private void shareImg(final int platfrom, final String title, final String message, final Bitmap bitmap) {
|
if (bitmap == null)
|
return;
|
int wchatAvilibleValue = Tools.isWeixinAvilible(mContext);
|
int qqAvilibleValue = Tools.isQQAvilible(mContext);
|
int sinaAvilibleValue = Tools.isSinaAvilible(mContext);
|
if (((platfrom == 1 || platfrom == 2) && (wchatAvilibleValue == 1 || wchatAvilibleValue == 2))
|
|| (platfrom == 3 && (qqAvilibleValue == 1 || qqAvilibleValue == 2))
|
|| (platfrom == 5 && (sinaAvilibleValue == 1 || sinaAvilibleValue == 2))) {
|
mContext.runOnUiThread(new Runnable() {
|
@Override
|
public void run() {
|
Toast.makeText(mContext, "未检测到第三方应用", Toast.LENGTH_SHORT).show();
|
}
|
});
|
} else {
|
String path = Environment.getExternalStorageDirectory()
|
+ "/rebateshare";
|
File storageDir = new File(path);
|
if (storageDir.isDirectory()) {
|
try {
|
File files[] = storageDir.listFiles();
|
for (int i = 0; i < files.length; i++) {
|
// deleteFolderFile(files[i].getAbsolutePath());
|
files[i].delete();
|
}
|
if (!storageDir.isDirectory()) {
|
storageDir.delete();
|
} else {
|
if (storageDir.listFiles().length == 0) {
|
storageDir.delete();
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
// files.clear();
|
final Thread thread = new Thread(new Runnable() {
|
@Override
|
public void run() {
|
File file = Tools.saveBitmap(mContext, bitmap);
|
ArrayList<ShareImageEntity> imageList = new ArrayList<>();
|
imageList.add(new ShareImageEntity(file.getPath()));
|
|
ArrayList<Uri> uriList = new ArrayList<Uri>();
|
if (imageList != null)
|
for (ShareImageEntity entity : imageList)
|
uriList.add(Tools.getImageContentUri(mContext, new File(entity.getFilePath())));
|
|
if (platfrom == 1) {
|
ShareImageUtil.shareWXPictureByIntent(mContext, uriList);
|
} else if (platfrom == 2) {
|
ShareImageUtil.shareWXCirclePictureByIntent(mContext, uriList);
|
} else if (platfrom == 3) {
|
ShareImageUtil.shareQQPictureByIntent(mContext, uriList);
|
} else if (platfrom == 4) {
|
ShareImageUtil.shareQQZonePictureByIntent(mContext, uriList);
|
} else {
|
ShareImageUtil.shareSinaPictureByIntent(mContext, uriList);
|
}
|
if (pd != null)
|
pd.dismiss();
|
}
|
});
|
thread.start();
|
}
|
}
|
|
private Bitmap getNetImage(String url) {
|
// Log.e("mResult", "getNetImage---" + url);
|
URL fileUrl = null;
|
Bitmap bitmap = null;
|
try {
|
fileUrl = new URL(url);
|
} catch (MalformedURLException e) {
|
e.printStackTrace();
|
}
|
if (fileUrl == null)
|
return null;
|
try {
|
HttpURLConnection conn = (HttpURLConnection) fileUrl.openConnection();
|
conn.setDoInput(true);
|
conn.connect();
|
InputStream is = conn.getInputStream();
|
bitmap = BitmapFactory.decodeStream(is);
|
} catch (IOException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
return bitmap;
|
}
|
|
// 判断权限集合 是否授权 false授权 true未授权
|
public boolean lacksPermissions(String... permissions) {
|
for (String permission : permissions) {
|
if (lacksPermission(permission)) {
|
return true;
|
}
|
}
|
return false;
|
}
|
|
// 判断是否缺少权限
|
private boolean lacksPermission(String permission) {
|
//权限未授权
|
return ContextCompat.checkSelfPermission(mContext, permission) == PackageManager.PERMISSION_DENIED;
|
}
|
|
private WebInterface webShareDesc; //定义
|
|
public void setWebShareDesc(WebInterface WebShareDesc) {
|
this.webShareDesc = WebShareDesc;
|
}
|
|
private GeneralBackCallback generalBackCallback; //定义 分享图片接口 检查权限传入网页调用type url参数
|
|
public void setGeneralBackCallback(GeneralBackCallback messageCallback) {
|
this.generalBackCallback = messageCallback;
|
}
|
|
@Override
|
public int getPermissionsRequestCode() {
|
return 1001;
|
}
|
|
/**
|
* 请求权限
|
*
|
* @return
|
*/
|
@Override
|
public String[] getPermissions() {
|
return new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
|
Manifest.permission.WRITE_EXTERNAL_STORAGE};
|
}
|
|
/**
|
* 权限请求成功
|
*/
|
@Override
|
public void requestPermissionsSuccess() {
|
|
}
|
|
/**
|
* 权限请求失败
|
*/
|
@Override
|
public void requestPermissionsFail() {
|
// Toast.makeText(this, "你以拒绝权限", Toast.LENGTH_SHORT).show();
|
}
|
}
|