package com.tejia.lijin.app.ui.invite;
|
|
import android.Manifest;
|
import android.annotation.SuppressLint;
|
import android.app.Activity;
|
import android.content.ClipData;
|
import android.content.Intent;
|
import android.content.pm.ActivityInfo;
|
import android.graphics.Bitmap;
|
import android.graphics.PixelFormat;
|
import android.net.Uri;
|
import android.os.Build;
|
import android.os.Bundle;
|
|
import androidx.annotation.NonNull;
|
import androidx.annotation.Nullable;
|
import androidx.annotation.RequiresApi;
|
import wendu.dsbridge.DWebView;
|
|
import android.util.Log;
|
import android.view.KeyEvent;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.view.ViewGroup;
|
import android.view.WindowManager;
|
import android.webkit.ConsoleMessage;
|
import android.webkit.DownloadListener;
|
import android.webkit.GeolocationPermissions;
|
import android.webkit.ValueCallback;
|
import android.webkit.WebChromeClient;
|
import android.webkit.WebResourceRequest;
|
import android.webkit.WebResourceResponse;
|
import android.webkit.WebSettings;
|
import android.webkit.WebView;
|
import android.webkit.WebViewClient;
|
import android.widget.AdapterView;
|
import android.widget.Button;
|
import android.widget.FrameLayout;
|
import android.widget.ImageView;
|
import android.widget.ListView;
|
import android.widget.PopupWindow;
|
import android.widget.ProgressBar;
|
import android.widget.TextView;
|
|
import com.ali.auth.third.ui.context.CallbackContext;
|
import com.alibaba.baichuan.android.trade.model.AlibcShowParams;
|
import com.alibaba.baichuan.trade.biz.AlibcConstants;
|
import com.alibaba.baichuan.trade.biz.applink.adapter.AlibcFailModeType;
|
import com.tejia.lijin.app.ui.recommend.GoodsDetailActivity;
|
import com.tejia.lijin.app.util.web.RebateJavaInterfaceBS;
|
import com.tejia.lijin.app.util.web.WebViewUtil;
|
import com.umeng.analytics.MobclickAgent;
|
import com.wpc.library.okhttp.OkHttpUtils;
|
import com.wpc.library.util.JDLinkCutUtil;
|
import com.wpc.library.util.PDDLinkCutUtil;
|
import com.wpc.library.util.SuningLinkCutUtil;
|
import com.wpc.library.util.SystemCommon;
|
import com.wpc.library.util.TaobaoLinkCutUtil;
|
import com.wpc.library.util.VipShopLinkCutUtil;
|
import com.wpc.library.util.common.StringUtils;
|
import com.tejia.lijin.app.BasicTextHttpResponseHandler;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.ShoppingApi;
|
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.ui.BaseActivity;
|
import com.tejia.lijin.app.ui.dialog.ShapeLoadingDialog;
|
import com.tejia.lijin.app.ui.mine.WebTopRightAdapter;
|
import com.tejia.lijin.app.ui.recommend.NoExtendJDGoodsActivity;
|
import com.tejia.lijin.app.ui.recommend.NoExtendPDDGoodsActivity;
|
import com.tejia.lijin.app.ui.recommend.NoExtendTaoBaoGoodsActivity;
|
import com.tejia.lijin.app.util.AndroidBug5497Workaround;
|
import com.tejia.lijin.app.util.Constant;
|
import com.tejia.lijin.app.util.KeFuUtil;
|
import com.tejia.lijin.app.util.PermissionHelper;
|
import com.tejia.lijin.app.util.web.RebateJavaInterface;
|
import com.tejia.lijin.app.util.TopStatusSettings;
|
import com.tejia.lijin.app.util.baichuan.AlibcTradeUtil;
|
import com.tejia.lijin.app.util.web.CustomNavigationJsObject;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.io.File;
|
import java.io.IOException;
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.HashSet;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Set;
|
|
public class ShareBrowserActivity extends BaseActivity implements OnClickListener, GeneralBackCallback, PermissionInterface {
|
|
private TextView tv_top_bar_left;
|
private TextView tv_top_bar_left2;
|
private ImageView iv_right;
|
private Button tv_top_bar_middle;
|
private DWebView webview;
|
private FrameLayout fl_webview;
|
View v_cover_web;
|
ProgressBar progressBar;
|
ShapeLoadingDialog pd = null;
|
|
String mTitle;
|
|
RebateJavaInterface javaInterface;
|
RebateJavaInterfaceBS javaInterface1;
|
private FrameLayout fl_full_video;
|
|
String tag1 = "config/getWebConfig";
|
String tag2 = "goods/isGoodsExtend";
|
|
private boolean interceptGoodsDetail;
|
|
private String originalUrl = "";
|
//沉浸式网页
|
private boolean immersion = false;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
|
String immersionStr = getIntent().getStringExtra("immersion");
|
if (!StringUtils.isNullOrEmpty(immersionStr) && Boolean.parseBoolean(immersionStr)) {
|
immersion = true;
|
}
|
setContentView(R.layout.browser_activity);
|
AndroidBug5497Workaround.assistActivity(this);
|
TopStatusSettings.setStatusViewAndDeepColor(this);
|
String url = getIntent().getStringExtra("url");
|
originalUrl = url;
|
//是否允许粘贴板推荐
|
String clipboradStr = getIntent().getStringExtra("clipboard");
|
interceptGoodsDetail = getIntent().getBooleanExtra("interceptGoodsDetail", true);
|
|
boolean clipborad = true;
|
if (!StringUtils.isEmpty(clipboradStr)) {
|
clipborad = Boolean.parseBoolean(clipboradStr);
|
}
|
if (clipborad) {
|
setShowRecommend(true);
|
} else {
|
setShowRecommend(false);
|
}
|
|
getWindow().setFormat(PixelFormat.TRANSLUCENT);
|
tv_top_bar_left = findViewById(R.id.tv_top_bar_left);
|
tv_top_bar_left2 = findViewById(R.id.tv_top_bar_left2);
|
tv_top_bar_left2.setVisibility(View.VISIBLE);
|
tv_top_bar_middle = findViewById(R.id.tv_top_bar_middle1);
|
v_cover_web = findViewById(R.id.v_cover_web);
|
iv_right = findViewById(R.id.iv_top_bar_right);
|
fl_webview = findViewById(R.id.fl_webview);
|
fl_full_video = findViewById(R.id.fl_full_video);
|
|
tv_top_bar_left.setOnClickListener(this);
|
tv_top_bar_left2.setOnClickListener(this);
|
iv_right.setOnClickListener(this);
|
v_cover_web.setOnClickListener(this);
|
tv_top_bar_middle.setVisibility(View.VISIBLE);
|
|
|
mTitle = getIntent().getStringExtra("title");
|
if (!StringUtils.isEmpty(mTitle)) {
|
tv_top_bar_middle.setText(mTitle);
|
}
|
// tv_top_bar_middle.setText("奥术大师大所大所多奥术大师");
|
pd = new ShapeLoadingDialog.Builder(this).build();
|
|
webview = new DWebView(ShareBrowserActivity.this);
|
|
fl_webview.addView(webview, new FrameLayout.LayoutParams(
|
FrameLayout.LayoutParams.MATCH_PARENT,
|
FrameLayout.LayoutParams.MATCH_PARENT));
|
|
|
initWebView();
|
progressBar = findViewById(R.id.myProgressBar);
|
progressBar.setMax(100);
|
progressBar.setProgressDrawable(this.getResources()
|
.getDrawable(R.drawable.color_progressbar));
|
|
mPermissionsChecker = new PermissionHelper(this, this);
|
// webview.loadUrl("http://mp.weixin.qq.com/s/mu3lJ1DYEc0MxgnMHArHYA");
|
// String url = "http://192.168.1.122:8848/test/WKWebView.html";
|
if (!StringUtils.isEmpty(url)) {
|
getWebConfig(url);
|
}
|
initTopRightPopupWindow();
|
}
|
|
/**
|
* 初始化webview
|
*/
|
@SuppressLint("SetJavaScriptEnabled")
|
private void initWebView() {
|
WebSettings webSettings = webview.getSettings();
|
webSettings.setJavaScriptEnabled(true);
|
webSettings.setDomStorageEnabled(true);
|
webSettings.setUseWideViewPort(true);
|
webSettings.setLoadWithOverviewMode(true);
|
webSettings.setTextZoom(100);
|
webSettings.setGeolocationEnabled(true);
|
webSettings.setPluginState(WebSettings.PluginState.ON);
|
webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);//设置缓存模式(根据cache-control决定是否从网络上取数据。)
|
//团油特殊设置
|
if (originalUrl != null && originalUrl.contains(".czb365.com")) {
|
webSettings.setUserAgentString("BLKS+Android");
|
}
|
webview.setDrawingCacheEnabled(true);
|
webview.setWebViewClient(webViewClient);
|
webview.setWebChromeClient(webChromeClient);
|
javaInterface = new RebateJavaInterface(ShareBrowserActivity.this,
|
tv_top_bar_middle, tv_top_bar_left2, new TextView(this), iv_right, webview, pd);
|
javaInterface.setGeneralBackCallback(this);//分享图片权限回调
|
webview.addJavascriptInterface(javaInterface, "yestv");
|
CustomNavigationJsObject customNavigation = new CustomNavigationJsObject(this);
|
webview.addJavascriptInterface(customNavigation, "czb");//第二个参数czb不可更改,
|
|
javaInterface1 = new RebateJavaInterfaceBS(ShareBrowserActivity.this,
|
tv_top_bar_middle, tv_top_bar_left2, new TextView(this), iv_right, webview, pd);
|
javaInterface1.setGeneralBackCallback(this);//分享图片权限回调
|
webview.addJavascriptObject(javaInterface1, "yestv");
|
|
/***
|
* Android5.0开始,WebView默认不支持同时加载Https和Http混合模式
|
* WebView在微信网页中首先打开一个https网址,然后它会被重定向到一个http网址
|
* 设置混合模式才能播放第三方视频和加载图片***/
|
if (Build.VERSION.SDK_INT >= 21) {
|
webview.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
|
}
|
webview.setDownloadListener(new DownloadListener() {
|
@Override
|
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
|
Intent intent = new Intent();
|
intent.setAction("android.intent.action.VIEW");
|
Uri content_url = Uri.parse(url);
|
intent.setData(content_url);
|
ShareBrowserActivity.this.startActivity(intent);
|
}
|
});
|
|
}
|
|
Set<String> idSet = new HashSet<>();
|
WebViewClient webViewClient = new WebViewClient() {
|
|
@Override
|
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
|
System.out.println("shouldOverrideUrlLoading");
|
return super.shouldOverrideUrlLoading(view, request);
|
}
|
|
@Override
|
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
// Log.e("mResult", "shouldOverrideUrlLoading----" + url);
|
if (goodsDetail && interceptGoodsDetail) {
|
String taoBaoId = TaobaoLinkCutUtil.linkCutId(url);
|
String JDId = null;
|
String PDDId = null;
|
String vipId = null;
|
String suningId = null;
|
if (StringUtils.isEmpty(taoBaoId)) {
|
JDId = JDLinkCutUtil.linkCutId(url);
|
if (StringUtils.isEmpty(JDId)) {
|
PDDId = PDDLinkCutUtil.linkCutId(url);
|
if (StringUtils.isEmpty(PDDId)) {
|
vipId = VipShopLinkCutUtil.linkCutId(url);
|
if (StringUtils.isEmpty(vipId)) {
|
suningId = SuningLinkCutUtil.linkCutId(url);
|
}
|
}
|
}
|
}
|
if (!StringUtils.isEmpty(taoBaoId)) {
|
// Log.e("mResult", "taoBaoId:" + taoBaoId);
|
if (!idSet.contains(taoBaoId)) {
|
idSet.add(taoBaoId);
|
isGoodsExtend(taoBaoId, Constant.GOODS_TYPE_TB);
|
}
|
return true;
|
} else if (!StringUtils.isEmpty(JDId)) {
|
if (!idSet.contains(JDId)) {
|
idSet.add(JDId);
|
isGoodsExtend(JDId, Constant.GOODS_TYPE_JD);
|
}
|
return true;
|
} else if (!StringUtils.isEmpty(PDDId)) {
|
if (!idSet.contains(PDDId)) {
|
idSet.add(PDDId);
|
isGoodsExtend(PDDId, Constant.GOODS_TYPE_PDD);
|
}
|
return true;
|
} else if (!StringUtils.isEmpty(vipId)) {
|
if (!idSet.contains(vipId)) {
|
idSet.add(vipId);
|
isGoodsExtend(vipId, Constant.GOODS_TYPE_VIP);
|
}
|
return true;
|
} else if (!StringUtils.isEmpty(suningId)) {
|
if (!idSet.contains(suningId)) {
|
idSet.add(suningId);
|
isGoodsExtend(suningId, Constant.GOODS_TYPE_SUNING);
|
}
|
return true;
|
}
|
}
|
Boolean intercept = WebViewUtil.interceptUrl(getApplicationContext(), url);
|
if (intercept != null)
|
return intercept;
|
|
return super.shouldOverrideUrlLoading(view, url);
|
}
|
|
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
@Nullable
|
@Override
|
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
|
WebResourceResponse response = super.shouldInterceptRequest(view, request);
|
String url = String.valueOf(request.getUrl());
|
// Log.e("mResult", url);
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
|
if (url.contains("http://cdn.yeshitv.com/js/jquery.min.js")) {
|
try {
|
response = new WebResourceResponse("*", "UTF-8", getAssets().open("jquery.min.js"));
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
} else if (url.contains("http://cdn.yeshitv.com/js/vue.min.js")) {
|
try {
|
response = new WebResourceResponse("*", "UTF-8", getAssets().open("vue.min.js"));
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
return response;
|
}
|
|
@Nullable
|
@Override
|
public WebResourceResponse shouldInterceptRequest(WebView view, String murl) {
|
WebResourceResponse response = super.shouldInterceptRequest(view, murl);
|
// Log.e("mResult", url);
|
//不需要判断登陆淘宝注释
|
// if (murl.trim().startsWith("http://login.m.taobao.com/login.htm") ||
|
// murl.trim().startsWith("https://login.m.taobao.com/login.htm")
|
// || murl.trim().startsWith("https://login.taobao.com/member/login.jhtml")) {
|
// AlibcLogin.getInstance().showLogin(new AlibcLoginCallback() {
|
//
|
// @Override
|
// public void onSuccess(int i, String s, String s1) {
|
// String url = getIntent().getStringExtra("url");
|
// webview.loadUrl(url);
|
// }
|
//
|
// @Override
|
// public void onFailure(int i, String s) {
|
//
|
// }
|
// });
|
// }
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
|
if (murl.contains("http://cdn.yeshitv.com/js/jquery.min.js")) {
|
try {
|
response = new WebResourceResponse("*", "UTF-8", getAssets().open("jquery.min.js"));
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
} else if (murl.contains("http://cdn.yeshitv.com/js/vue.min.js")) {
|
try {
|
response = new WebResourceResponse("*", "UTF-8", getAssets().open("vue.min.js"));
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
return response;
|
}
|
|
@Override
|
public void onPageStarted(WebView view, String url, Bitmap favicon) {
|
super.onPageStarted(view, url, favicon);
|
if (view.canGoBack()) {
|
tv_top_bar_left2.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_web_close, 0, 0, 0);
|
} else {
|
tv_top_bar_left2.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
|
}
|
}
|
};
|
|
WebChromeClient webChromeClient = new WebChromeClient() {
|
|
@Override
|
public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
|
Log.i("ShareBrowserActivity", consoleMessage.message() + " " + consoleMessage.lineNumber());
|
return super.onConsoleMessage(consoleMessage);
|
}
|
|
@Override
|
public void onReceivedTitle(WebView view, String title) {
|
if (StringUtils.isEmpty(mTitle) && null != title && !StringUtils.isEmpty(title.trim())) {
|
tv_top_bar_middle.setText(title);
|
}
|
}
|
|
@Override
|
public void onProgressChanged(WebView webView, int i) {
|
if (i == 100) {
|
progressBar.setVisibility(View.GONE);
|
} else {
|
if (View.INVISIBLE == progressBar.getVisibility()) {
|
progressBar.setVisibility(View.VISIBLE);
|
}
|
progressBar.setProgress(i);
|
}
|
super.onProgressChanged(webView, i);
|
}
|
|
@Override
|
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
|
callback.invoke(origin, true, true);
|
super.onGeolocationPermissionsShowPrompt(origin, callback);
|
}
|
|
@Override
|
public void onGeolocationPermissionsHidePrompt() {
|
super.onGeolocationPermissionsHidePrompt();
|
}
|
|
//////////////*全屏
|
private View myView = null;
|
|
// 全屏
|
@Override
|
public void onShowCustomView(View view, CustomViewCallback callback) {
|
super.onShowCustomView(view, callback);
|
ViewGroup parent = (ViewGroup) webview.getParent();
|
parent.removeView(webview);
|
// Log.e("eee", "onShowCustomView: 全屏");
|
fl_full_video.addView(view);
|
fl_full_video.setVisibility(View.VISIBLE);
|
myView = view;
|
setFullScreen();
|
}
|
|
// 退出全屏
|
@Override
|
public void onHideCustomView() {
|
super.onHideCustomView();
|
if (myView != null) {
|
fl_full_video.removeAllViews();
|
fl_full_video.setVisibility(View.GONE);
|
fl_webview.addView(webview);
|
myView = null;
|
quitFullScreen();
|
}
|
}
|
|
@Override
|
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
|
uploadMessageAboveL = filePathCallback;
|
openImageChooserActivity();
|
return true;
|
}
|
|
};
|
private ValueCallback<Uri[]> uploadMessageAboveL;
|
int FILE_CHOOSER_RESULT_CODE = 20001;
|
|
private void openImageChooserActivity() {
|
//调用自己的图库
|
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
|
i.addCategory(Intent.CATEGORY_OPENABLE);
|
i.setType("image/*");
|
startActivityForResult(Intent.createChooser(i, "Image Chooser"), FILE_CHOOSER_RESULT_CODE);
|
}
|
|
/**
|
* 设置全屏
|
*/
|
private void setFullScreen() {
|
//设置横屏
|
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
|
// 设置全屏的相关属性,获取当前的屏幕状态,然后设置全屏
|
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
|
WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
}
|
|
/**
|
* 退出全屏
|
*/
|
private void quitFullScreen() {
|
//设置竖屏
|
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
// 声明当前屏幕状态的参数并获取
|
final WindowManager.LayoutParams attrs = this.getWindow().getAttributes();
|
attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
this.getWindow().setAttributes(attrs);
|
this.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
|
}
|
|
boolean baichuan;//是否进入百川网页
|
boolean goodsDetail;//是否可以进入商品过渡页
|
|
private void getWebConfig(final String url) {
|
ShoppingApi.getWebConfig(this, url, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optInt("code") == 0) {
|
baichuan = jsonObject.optJSONObject("data").optBoolean("baichuan");
|
goodsDetail = jsonObject.optJSONObject("data").optBoolean("goodsDetail");
|
if (baichuan) {
|
AlibcShowParams alibcShowParams = new AlibcShowParams();
|
Map<String, String> exParams = new HashMap<>();
|
exParams.put(AlibcConstants.ISV_CODE, "appisvcode");
|
exParams.put("alibaba", "阿里巴巴");//自定义参数部分,可任意增删改
|
|
if (!StringUtils.isEmpty(url)) {
|
alibcShowParams.setNativeOpenFailedMode(AlibcFailModeType.AlibcNativeFailModeJumpH5);
|
|
AlibcTradeUtil.openByUrl(ShareBrowserActivity.this, url, webview,
|
webViewClient, webChromeClient, alibcShowParams,
|
null, null);
|
}
|
} else {
|
webview.loadUrl(url);
|
}
|
} else {
|
webview.loadUrl(url);
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, byte[] responseBytes, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseBytes, throwable);
|
webview.loadUrl(url);
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String jsonObject, Throwable e) {
|
super.onFailure(statusCode, headers, jsonObject, e);
|
webview.loadUrl(url);
|
}
|
});
|
}
|
|
private void isGoodsExtend(final String goodsId, final int goodsType) {
|
pd.show();
|
ShoppingApi.isGoodsExtend(this, goodsId, goodsType, new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
idSet.remove(goodsId);
|
pd.dismiss();
|
}
|
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optInt("code") == 0) {
|
boolean extend = jsonObject.optJSONObject("data").optBoolean("extend");
|
// Log.e("mResult", "extend:" + extend);
|
if (extend) {//有推广
|
|
Intent intent = new Intent(getApplicationContext(), GoodsDetailActivity.class);
|
intent.putExtra("goodsId", goodsId);
|
intent.putExtra("goodsType", goodsType);
|
|
intent.putExtra("id", goodsId);
|
intent.putExtra("from", "baichuanweb");
|
startActivity(intent);
|
} else {
|
String url = jsonObject.optJSONObject("data").optString("url");
|
// Log.e("mResult", "url:" + url);
|
Intent intent;
|
if (goodsType == 1) {
|
intent = new Intent(ShareBrowserActivity.this, NoExtendTaoBaoGoodsActivity.class);
|
} else if (goodsType == 2) {
|
intent = new Intent(ShareBrowserActivity.this, NoExtendJDGoodsActivity.class);
|
} else {
|
intent = new Intent(ShareBrowserActivity.this, NoExtendPDDGoodsActivity.class);
|
}
|
|
intent.putExtra("url", url);
|
startActivity(intent);
|
}
|
}
|
}
|
});
|
}
|
|
/**
|
* 多张图片分享 platform--0 微信好友
|
* platform--1 朋友圈
|
* platform--2 QQ
|
*
|
* @param platfrom
|
*/
|
private List<String> imgs = new ArrayList<>();
|
private List<File> files = new ArrayList<>();
|
String title = "";
|
String description = "";
|
String link = "";
|
boolean isDownloadFinish = false;
|
|
@Override
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
CallbackContext.onActivityResult(requestCode, resultCode, data);
|
|
if (requestCode == FILE_CHOOSER_RESULT_CODE) { //处理返回的图片,并进行上传
|
if (null == uploadMessageAboveL) return;
|
Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();
|
if (uploadMessageAboveL != null) {
|
onActivityResultAboveL(requestCode, resultCode, data);
|
}
|
}
|
}
|
|
private void onActivityResultAboveL(int requestCode, int resultCode, Intent intent) {
|
if (requestCode != FILE_CHOOSER_RESULT_CODE || uploadMessageAboveL == null)
|
return;
|
Uri[] results = null;
|
if (resultCode == Activity.RESULT_OK) {
|
if (intent != null) {
|
String dataString = intent.getDataString();
|
ClipData clipData = intent.getClipData();
|
if (clipData != null) {
|
results = new Uri[clipData.getItemCount()];
|
for (int i = 0; i < clipData.getItemCount(); i++) {
|
ClipData.Item item = clipData.getItemAt(i);
|
results[i] = item.getUri();
|
}
|
}
|
if (dataString != null)
|
results = new Uri[]{Uri.parse(dataString)};
|
}
|
}
|
uploadMessageAboveL.onReceiveValue(results);
|
uploadMessageAboveL = null;
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
MobclickAgent.onPageStart("网页");
|
if (webview != null) {
|
webview.onResume();
|
webview.loadUrl("javascript:yestvcallback.resume()");
|
}
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
MobclickAgent.onPageEnd("网页");
|
if (webview != null) {
|
webview.onPause();
|
}
|
}
|
|
@Override
|
protected void onDestroy() {
|
if (webview != null) {
|
webview.removeAllViews();
|
webview.destroy();
|
}
|
super.onDestroy();
|
OkHttpUtils.getInstance().cancelTag(tag1);
|
OkHttpUtils.getInstance().cancelTag(tag2);
|
}
|
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.tv_top_bar_left: {
|
if (webview.canGoBack()) {
|
webview.goBack();
|
} else {
|
finish();
|
}
|
}
|
break;
|
case R.id.tv_top_bar_left2: {
|
finish();
|
}
|
break;
|
case R.id.iv_top_bar_right:
|
if (mulList.size() == 2 && javaInterface.mList.size() > 0) {
|
mulList.addAll(0, javaInterface.mList);
|
}
|
|
if (mulList.size() == 2 && javaInterface1.mList.size() > 0) {
|
mulList.addAll(0, javaInterface1.mList);
|
}
|
|
|
if (mTopRightPopupWindow != null) {
|
v_cover_web.setVisibility(View.VISIBLE);
|
mTopRightPopupWindow.showAsDropDown(iv_right);
|
}
|
break;
|
case R.id.v_cover_web:
|
if (mTopRightPopupWindow != null) {
|
v_cover_web.setVisibility(View.GONE);
|
mTopRightPopupWindow.dismiss();
|
}
|
|
break;
|
default:
|
break;
|
}
|
}
|
|
@Override
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
|
if (webview.canGoBack()) {
|
webview.goBack(); // goBack()表示返回WebView的上一页面
|
return true;
|
} else {
|
finish();
|
}
|
}
|
return super.onKeyDown(keyCode, event);
|
}
|
|
|
@Override
|
protected void onNewIntent(Intent intent) {
|
super.onNewIntent(intent);
|
}
|
|
/**
|
* 初始化右上角提示
|
*/
|
PopupWindow mTopRightPopupWindow;
|
private List<ImgText> mulList = new ArrayList<>();
|
WebTopRightAdapter shareFromAdapter;
|
|
private void initTopRightPopupWindow() {
|
View view = getLayoutInflater().inflate(R.layout.item_share_from_filter,
|
null, false);
|
// 创建PopupWindow实例,200,150分别是宽度和高度
|
mTopRightPopupWindow = new PopupWindow(view, (int) (SystemCommon.getScreenWidth(this) / 3), ViewGroup.LayoutParams.WRAP_CONTENT, true);
|
// 设置动画效果 [R.style.AnimationFade 是自己事先定义好的]
|
// pw_filter.setAnimationStyle(R.style.pop_multiple);
|
mTopRightPopupWindow.setTouchable(true);
|
mTopRightPopupWindow.setOutsideTouchable(false);
|
mTopRightPopupWindow.setFocusable(false);
|
ListView lv = view.findViewById(R.id.lv_filter_pw);
|
ImgText info1 = new ImgText();
|
info1.setName("刷新");
|
ImgText info2 = new ImgText();
|
info2.setName("人工客服");
|
mulList.add(info1);
|
mulList.add(info2);
|
if (javaInterface.mList.size() > 0)
|
mulList.addAll(0, javaInterface.mList);
|
|
if (javaInterface1.mList.size() > 0)
|
mulList.addAll(0, javaInterface1.mList);
|
|
shareFromAdapter = new WebTopRightAdapter(this, mulList);
|
lv.setAdapter(shareFromAdapter);
|
|
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
@Override
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
mTopRightPopupWindow.dismiss();
|
v_cover_web.setVisibility(View.GONE);
|
if (position == mulList.size() - 1) {
|
KeFuUtil.jumpKeFu(ShareBrowserActivity.this, "网页");
|
} else if (position == mulList.size() - 2) {
|
webview.reload();
|
} else {
|
webview.loadUrl("javascript:" + mulList.get(position).getJs());
|
}
|
}
|
});
|
mTopRightPopupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
|
@Override
|
public void onDismiss() {
|
v_cover_web.setVisibility(View.GONE);
|
}
|
});
|
}
|
|
|
private PermissionHelper mPermissionsChecker; // 权限检测器
|
|
/**
|
* 权限请求码
|
*
|
* @return
|
*/
|
@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() {
|
javaInterface.shareImg(type, imgurl);//分享图片
|
}
|
|
/**
|
* 权限请求失败
|
*/
|
@Override
|
public void requestPermissionsFail() {
|
// Toast.makeText(this, "你以拒绝权限", Toast.LENGTH_SHORT).show();
|
}
|
|
/**
|
* 请求权限结果
|
*/
|
@Override
|
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
if (mPermissionsChecker.requestPermissionsResult(requestCode, permissions, grantResults)) {
|
//权限请求结果,并已经处理了该回调
|
return;
|
}
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
}
|
|
int type;
|
String imgurl;
|
|
/*************js图片分享权限申请回调*****/
|
@Override
|
public void onSuccess(Object var1, Object var2) {
|
type = (int) var1;
|
if (var2 != null)
|
imgurl = var2.toString();
|
if (mPermissionsChecker.lacksPermissions(getPermissions())) { //检测权限
|
mPermissionsChecker.showNormalDialog();
|
} else {
|
if (var2 != null)
|
javaInterface.shareImg(type, imgurl);//分享图片
|
}
|
}
|
}
|