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 |
| | |
| | | package com.tejia.lijin.app.util; |
| | | package com.tejia.lijin.app.util.web; |
| | | |
| | | import android.Manifest; |
| | | import android.app.Activity; |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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); |
| | |
| | | } |
| | | |
| | | @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 + ""); |
| | | } |
| | | }); |
| | | } |
| | |
| | | * 保存网络图片 |
| | | * |
| | | * @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(); |
| | | } |
| | |
| | | |
| | | |
| | | @JavascriptInterface |
| | | public void savePictures(String urls) { |
| | | public void savePictures(Object urls) { |
| | | if (mPermissionsChecker == null) |
| | | mPermissionsChecker = new PermissionHelper(mContext, this); |
| | | if (mPermissionsChecker.lacksPermissions(getPermissions())) { //存储权限未开启 |
| | |
| | | } 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)); |
| | | } |
| | |
| | | |
| | | |
| | | @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 |
| | |
| | | } |
| | | |
| | | @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 { |
| | |
| | | |
| | | |
| | | @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 |
| | |
| | | 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(); |
| | |
| | | |
| | | //文本分享 |
| | | @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) { |
| | |
| | | |
| | | //图片分享 "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}; |
| | |
| | | /** |
| | | * 多图分享 |
| | | * |
| | | * @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)) {//缺少权限 |
| | |
| | | * @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 + ""); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @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() { |
| | |
| | | }); |
| | | } |
| | | |
| | | |
| | | 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() { |