Commit ba9fd989 by amateur

1

1 parent 658b82b4
......@@ -5,6 +5,8 @@ public class OpenUrlBean {
private String linkType;
private String title;
private String nav;
private String isLogin;
private String isShare;
private String backClsName;
......@@ -47,4 +49,20 @@ public class OpenUrlBean {
public void setBackClsName(String backClsName) {
this.backClsName = backClsName;
}
public String getIsShare() {
return isShare;
}
public void setIsShare(String isShare) {
this.isShare = isShare;
}
public String getIsLogin() {
return isLogin;
}
public void setIsLogin(String isLogin) {
this.isLogin = isLogin;
}
}
......@@ -16,11 +16,14 @@ import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.DrawableImageViewTarget;
import com.bumptech.glide.request.transition.Transition;
import com.polysoft.nafmii.bean.AdvertisementBean;
import com.polysoft.nafmii.bean.MenuBean;
import com.polysoft.nafmii.bean.OpenUrlBean;
import com.polysoft.nafmii.enums.ModulesEnum;
import com.polysoft.nafmii.utils.IntentUtils;
import com.whaty.nafmii.BuildConfig;
import com.whaty.nafmii.R;
......@@ -28,6 +31,11 @@ import com.whaty.nafmii.activity.HomeActivity;
import com.whaty.nafmii.activity.IActivityEvent;
import com.whaty.nafmii.activity.OutsideWebviewActivity;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
public class AdvertisementFragment extends Fragment implements View.OnClickListener {
private final String TAG = AdvertisementFragment.class.getName();
......@@ -116,15 +124,44 @@ public class AdvertisementFragment extends Fragment implements View.OnClickListe
OpenUrlBean dataBean = new OpenUrlBean();
dataBean.setBackClsName(HomeActivity.class.getName());
dataBean.setLinkType(bean.getLinkType());
try {
if ("1".equals(bean.getLinkType())) {
dataBean.setLinkUrl(bean.getInsideUrl());
dataBean.setLinkUrl(URLEncoder.encode(bean.getInsideUrl(), "UTF-8"));
} else {
dataBean.setNav("1");
dataBean.setLinkUrl(bean.getOutsideUrl());
dataBean.setLinkUrl(URLEncoder.encode(bean.getOutsideUrl(), "utf-8"));
}
} catch (Exception e) {
e.printStackTrace();
}
Intent intent = new Intent(getActivity(), OutsideWebviewActivity.class);
intent.putExtra("data", JSON.toJSONString(dataBean));
IntentUtils.startActivity(getActivity(), intent);
// 需要登录
// if ("0".equals(bean.getIsLogin())) {
dataBean.setIsLogin(bean.getIsLogin());
dataBean.setIsShare(bean.getIsShare());
MenuBean menuBean = new MenuBean();
menuBean.setModuleName(ModulesEnum.HOME.name);
menuBean.setQuery(dataBean);
Map<String, Object> map = new HashMap<>();
map.put("moduleName", ModulesEnum.HOME.name);
map.put("query", dataBean);
Intent intent = new Intent();
intent.putExtra("changeRoute", JSONObject.toJSONString(map));
IntentUtils.toHomeActivity(this.getActivity(), intent);
// }
// else if ("1".equals(bean.getLinkType())) { // 内链
//
// } else {
// Intent intent = new Intent(getActivity(), OutsideWebviewActivity.class);
// intent.putExtra("data", JSON.toJSONString(dataBean));
// IntentUtils.startActivity(getActivity(), intent);
// }
}
......
......@@ -5,6 +5,7 @@ import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
......@@ -14,6 +15,9 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.polysoft.nafmii.bean.MenuBean;
import com.polysoft.nafmii.broadcast.PhotosReceiver;
import com.polysoft.nafmii.utils.BitmapUtils;
import com.polysoft.nafmii.utils.FileProviderUtils;
......@@ -21,6 +25,7 @@ import com.polysoft.nafmii.utils.IntentUtils;
import com.polysoft.nafmii.utils.PermissionUtils;
import com.polysoft.nafmii.utils.ToastUtils;
import com.polysoft.nafmii.webview.IWebview;
import com.polysoft.nafmii.webview.JSApi;
import com.polysoft.nafmii.webview.MyWebChromeClient;
import com.polysoft.nafmii.webview.MyWebViewClient;
import com.polysoft.nafmii.webview.WebviewHandler;
......@@ -31,6 +36,8 @@ import com.wang.avi.AVLoadingIndicatorView;
import com.whaty.nafmii.R;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
public class WebViewFragment extends Fragment implements WebviewLoadListener {
......@@ -81,6 +88,18 @@ public class WebViewFragment extends Fragment implements WebviewLoadListener {
public void onWebviewLoad(int type, Object param) {
if (type == WebviewLoadListener.TYPE_FINISH) {
this.mLoading.hide();
Intent intent = getActivity().getIntent();
String changeRoute = intent.getStringExtra("changeRoute");
Map<String, Object> map = JSON.parseObject(changeRoute, Map.class);
MenuBean menuBean = JSON.parseObject(changeRoute, MenuBean.class);
if (null == menuBean || !this.getTag().equals(map.get("moduleName"))) {
return;
}
System.out.println(changeRoute);
IWebview webview = this.getWebview();
JSApi.callOnRouteChange(webview.getWebview(), JSON.toJSONString(map));
}
}
......
......@@ -61,11 +61,16 @@ public class IntentUtils {
}
public static void toHomeActivity(Activity activity) {
toHomeActivity(activity, new Intent());
}
public static void toHomeActivity(Activity activity, Intent intent) {
if (BuildConfig.DEBUG) {
startActivity(activity, HomeActivity.class);
intent.setClass(activity, HomeActivity.class);
} else {
startActivity(activity, HomeActivity.class);
intent.setClass(activity, HomeActivity.class);
}
startActivity(activity, intent);
}
public static void startActivity(Activity activity, Class<? extends Activity> target) {
......
......@@ -32,7 +32,7 @@ public class HomeWebviewHandler extends WebviewHandler {
List<String> tags = Arrays.asList(fmtKeys);
for (Fragment fmt : fragments) {
String tag = fmt.getTag();
if (tags.indexOf(tag) > 0) {
if (tags.indexOf(tag) > -1) {
IWebview webview = ((WebViewFragment) fmt).getWebview();
webview.getWebview().getSettings().setTextZoom(zoom);
}
......
......@@ -9,8 +9,12 @@ import com.tencent.smtt.sdk.ValueCallback;
import com.tencent.smtt.sdk.WebChromeClient;
import com.tencent.smtt.sdk.WebView;
import java.util.concurrent.atomic.AtomicBoolean;
public class MyWebChromeClient extends WebChromeClient {
private final WebviewLoadListener listener;
private AtomicBoolean mIsLoadFinish = new AtomicBoolean();
private boolean mIsFinish = false;
public MyWebChromeClient(WebviewLoadListener listener) {
this.listener = listener;
......@@ -24,6 +28,13 @@ public class MyWebChromeClient extends WebChromeClient {
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (null != this.listener) {
if (newProgress == 100) {
if (!mIsFinish) {
this.mIsFinish = true;
this.listener.onWebviewLoad(WebviewLoadListener.TYPE_FINISH, null);
return;
}
}
this.listener.onWebviewLoad(WebviewLoadListener.TYPE_PROGRESS, newProgress);
}
super.onProgressChanged(view, newProgress);
......
......@@ -40,7 +40,7 @@ public class MyWebViewClient extends WebViewClient {
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
if (null != this.listener) {
this.listener.onWebviewLoad(WebviewLoadListener.TYPE_FINISH, null);
// this.listener.onWebviewLoad(WebviewLoadListener.TYPE_FINISH, null);
}
}
......
......@@ -230,6 +230,7 @@ public class NativeApi {
Intent intent = new Intent(mActivity, OutsideWebviewActivity.class);
intent.putExtra("data", data.toJSONString());
mActivity.startActivity(intent);
js.success(null);
});
});
}
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!