admin
2021-05-22 3595485efbfeb0db8c0e719e34aac022af284754
app/src/main/java/com/tejia/lijin/app/util/web/RebateJavaInterfaceBS.java
copy from app/src/main/java/com/tejia/lijin/app/util/RebateJavaInterface.java copy to app/src/main/java/com/tejia/lijin/app/util/web/RebateJavaInterfaceBS.java
File was copied from app/src/main/java/com/tejia/lijin/app/util/RebateJavaInterface.java
@@ -1,4 +1,4 @@
package com.tejia.lijin.app.util;
package com.tejia.lijin.app.util.web;
import android.Manifest;
import android.app.Activity;
@@ -12,34 +12,47 @@
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import androidx.core.content.ContextCompat;
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.wpc.library.util.common.StringUtils;
import com.wpc.library.util.security.MD5Utils;
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;
@@ -56,7 +69,10 @@
import java.util.Iterator;
import java.util.List;
public class RebateJavaInterface extends BaseRebateJavaInterface implements PermissionInterface {
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;
@@ -66,14 +82,14 @@
    private boolean boo = false;
    private PermissionHelper mPermissionsChecker; // 权限检测器
    public RebateJavaInterface(Activity activity, WebView webview) {
    public RebateJavaInterfaceBS(Activity activity, WebView webview) {
        super(activity);
        mContext = activity;
        this.webview = webview;
        boo = true;
    }
    public RebateJavaInterface(Activity activity, TextView tv_top_bar_middle
    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);
@@ -87,14 +103,14 @@
    }
    @JavascriptInterface
    public void setTitle(final String title) {
    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);
                    if (null != title && !StringUtils.isEmpty((title + "").trim()))
                        tv_top_bar_middle.setText(title + "");
                }
            });
    }
@@ -103,22 +119,21 @@
     * 保存网络图片
     *
     * @param url
     * @param name
     */
    @JavascriptInterface
    public void savePicture(String url, String name) {
    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);
            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, path, md5 + ".jpg");
                    File resultFile = Tools.saveImageFromPathToSdCard(mContext, url.toString(), path, md5 + ".jpg");
                    if (resultFile != null) {
                        Toast.makeText(mContext, "图片保存到相册成功", Toast.LENGTH_LONG).show();
                    }
@@ -136,7 +151,7 @@
    @JavascriptInterface
    public void savePictures(String urls) {
    public void savePictures(Object urls) {
        if (mPermissionsChecker == null)
            mPermissionsChecker = new PermissionHelper(mContext, this);
        if (mPermissionsChecker.lacksPermissions(getPermissions())) { //存储权限未开启
@@ -144,7 +159,7 @@
        } else {//存储权限已开
            List<String> urlList = new ArrayList<>();
            try {
                JSONArray array = new JSONArray(urls);
                JSONArray array = new JSONArray(urls.toString());
                for (int i = 0; i < array.length(); i++) {
                    urlList.add(array.optString(i));
                }
@@ -162,7 +177,11 @@
    @JavascriptInterface
    public void setTopMenuRightIcon(final String picUrl, final String jsCallback) {
    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
@@ -181,7 +200,12 @@
    }
    @JavascriptInterface
    public void jumpPageWithFinishCurrentPage(String pageClassName, String paramJson) {
    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 {
@@ -266,7 +290,11 @@
    @JavascriptInterface
    public void setTopMenuRightText(final String text, final String callbackMethod) {
    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
@@ -286,9 +314,9 @@
    public List<ImgText> mList = new ArrayList<>();
    @JavascriptInterface
    public void addMenu(String str) {
    public void addMenu(Object str) {
        Gson gson = new GsonBuilder().serializeNulls().create();
        List<ImgText> list = gson.fromJson(str, new TypeToken<List<ImgText>>() {
        List<ImgText> list = gson.fromJson(str + "", new TypeToken<List<ImgText>>() {
        }.getType());
        if (mList.size() > 0)
            mList.clear();
@@ -303,7 +331,11 @@
    //文本分享
    @JavascriptInterface
    public void shareText(int type, String text) {
    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) {
@@ -319,7 +351,12 @@
    //图片分享  "type":1,//1-微信  2-朋友圈  3-QQ  4-空间  5-微博 6-更多
    @JavascriptInterface
    public void shareImg(int type, final String url) {
    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};
@@ -346,11 +383,15 @@
    /**
     * 多图分享
     *
     * @param type
     * @param urls
     * @param args
     */
    @JavascriptInterface
    public void shareImgs(int type, final String urls) {
    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)) {//缺少权限
@@ -381,10 +422,10 @@
     * @param url
     */
    @JavascriptInterface
    public void tbAuth(String url) {
        if (StringUtils.isEmpty(url))
    public void tbAuth(Object url) {
        if (StringUtils.isEmpty(url + ""))
            return;
        AlibcTradeUtil.openAuthLink(mContext, url);
        AlibcTradeUtil.openAuthLink(mContext, url + "");
    }
    /**
@@ -393,10 +434,10 @@
     * @param url
     */
    @JavascriptInterface
    public void jumpJD(String url) {
        if (StringUtils.isEmpty(url))
    public void jumpJD(Object url) {
        if (StringUtils.isEmpty(url + ""))
            return;
        KeplerApiManager.getWebViewService().openAppWebViewPage(mContext, url, new KeplerAttachParameter(), new OpenAppAction() {
        KeplerApiManager.getWebViewService().openAppWebViewPage(mContext, url + "", new KeplerAttachParameter(), new OpenAppAction() {
            @Override
            public void onStatus(final int status, final String url) {
                mContext.runOnUiThread(new Runnable() {
@@ -421,6 +462,133 @@
        });
    }
    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) {
                        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;
                        }
                    }
                    //视频广告的素材加载完毕,比如视频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() {
                                result.put("code", 2);
                                result.put("msg", "视频出错");
                                handler.complete(result);
                            }
                            @Override
                            public void onRewardVerify(boolean b, int i, String s, int i1, String s1) {
                                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() {