Commit ba9fd989 by amateur

1

1 parent 658b82b4
...@@ -5,6 +5,8 @@ public class OpenUrlBean { ...@@ -5,6 +5,8 @@ public class OpenUrlBean {
private String linkType; private String linkType;
private String title; private String title;
private String nav; private String nav;
private String isLogin;
private String isShare;
private String backClsName; private String backClsName;
...@@ -47,4 +49,20 @@ public class OpenUrlBean { ...@@ -47,4 +49,20 @@ public class OpenUrlBean {
public void setBackClsName(String backClsName) { public void setBackClsName(String backClsName) {
this.backClsName = 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; ...@@ -16,11 +16,14 @@ import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bumptech.glide.Glide; import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.DrawableImageViewTarget; import com.bumptech.glide.request.target.DrawableImageViewTarget;
import com.bumptech.glide.request.transition.Transition; import com.bumptech.glide.request.transition.Transition;
import com.polysoft.nafmii.bean.AdvertisementBean; import com.polysoft.nafmii.bean.AdvertisementBean;
import com.polysoft.nafmii.bean.MenuBean;
import com.polysoft.nafmii.bean.OpenUrlBean; import com.polysoft.nafmii.bean.OpenUrlBean;
import com.polysoft.nafmii.enums.ModulesEnum;
import com.polysoft.nafmii.utils.IntentUtils; import com.polysoft.nafmii.utils.IntentUtils;
import com.whaty.nafmii.BuildConfig; import com.whaty.nafmii.BuildConfig;
import com.whaty.nafmii.R; import com.whaty.nafmii.R;
...@@ -28,6 +31,11 @@ import com.whaty.nafmii.activity.HomeActivity; ...@@ -28,6 +31,11 @@ import com.whaty.nafmii.activity.HomeActivity;
import com.whaty.nafmii.activity.IActivityEvent; import com.whaty.nafmii.activity.IActivityEvent;
import com.whaty.nafmii.activity.OutsideWebviewActivity; 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 { public class AdvertisementFragment extends Fragment implements View.OnClickListener {
private final String TAG = AdvertisementFragment.class.getName(); private final String TAG = AdvertisementFragment.class.getName();
...@@ -116,15 +124,44 @@ public class AdvertisementFragment extends Fragment implements View.OnClickListe ...@@ -116,15 +124,44 @@ public class AdvertisementFragment extends Fragment implements View.OnClickListe
OpenUrlBean dataBean = new OpenUrlBean(); OpenUrlBean dataBean = new OpenUrlBean();
dataBean.setBackClsName(HomeActivity.class.getName()); dataBean.setBackClsName(HomeActivity.class.getName());
dataBean.setLinkType(bean.getLinkType()); dataBean.setLinkType(bean.getLinkType());
try {
if ("1".equals(bean.getLinkType())) { if ("1".equals(bean.getLinkType())) {
dataBean.setLinkUrl(bean.getInsideUrl()); dataBean.setLinkUrl(URLEncoder.encode(bean.getInsideUrl(), "UTF-8"));
} else { } else {
dataBean.setNav("1"); 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; ...@@ -5,6 +5,7 @@ import android.app.Activity;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -14,6 +15,9 @@ import androidx.annotation.NonNull; ...@@ -14,6 +15,9 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment; 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.broadcast.PhotosReceiver;
import com.polysoft.nafmii.utils.BitmapUtils; import com.polysoft.nafmii.utils.BitmapUtils;
import com.polysoft.nafmii.utils.FileProviderUtils; import com.polysoft.nafmii.utils.FileProviderUtils;
...@@ -21,6 +25,7 @@ import com.polysoft.nafmii.utils.IntentUtils; ...@@ -21,6 +25,7 @@ import com.polysoft.nafmii.utils.IntentUtils;
import com.polysoft.nafmii.utils.PermissionUtils; import com.polysoft.nafmii.utils.PermissionUtils;
import com.polysoft.nafmii.utils.ToastUtils; import com.polysoft.nafmii.utils.ToastUtils;
import com.polysoft.nafmii.webview.IWebview; import com.polysoft.nafmii.webview.IWebview;
import com.polysoft.nafmii.webview.JSApi;
import com.polysoft.nafmii.webview.MyWebChromeClient; import com.polysoft.nafmii.webview.MyWebChromeClient;
import com.polysoft.nafmii.webview.MyWebViewClient; import com.polysoft.nafmii.webview.MyWebViewClient;
import com.polysoft.nafmii.webview.WebviewHandler; import com.polysoft.nafmii.webview.WebviewHandler;
...@@ -31,6 +36,8 @@ import com.wang.avi.AVLoadingIndicatorView; ...@@ -31,6 +36,8 @@ import com.wang.avi.AVLoadingIndicatorView;
import com.whaty.nafmii.R; import com.whaty.nafmii.R;
import java.io.File; import java.io.File;
import java.util.HashMap;
import java.util.Map;
public class WebViewFragment extends Fragment implements WebviewLoadListener { public class WebViewFragment extends Fragment implements WebviewLoadListener {
...@@ -81,6 +88,18 @@ 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) { public void onWebviewLoad(int type, Object param) {
if (type == WebviewLoadListener.TYPE_FINISH) { if (type == WebviewLoadListener.TYPE_FINISH) {
this.mLoading.hide(); 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 { ...@@ -61,11 +61,16 @@ public class IntentUtils {
} }
public static void toHomeActivity(Activity activity) { public static void toHomeActivity(Activity activity) {
toHomeActivity(activity, new Intent());
}
public static void toHomeActivity(Activity activity, Intent intent) {
if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
startActivity(activity, HomeActivity.class); intent.setClass(activity, HomeActivity.class);
} else { } else {
startActivity(activity, HomeActivity.class); intent.setClass(activity, HomeActivity.class);
} }
startActivity(activity, intent);
} }
public static void startActivity(Activity activity, Class<? extends Activity> target) { public static void startActivity(Activity activity, Class<? extends Activity> target) {
......
...@@ -32,7 +32,7 @@ public class HomeWebviewHandler extends WebviewHandler { ...@@ -32,7 +32,7 @@ public class HomeWebviewHandler extends WebviewHandler {
List<String> tags = Arrays.asList(fmtKeys); List<String> tags = Arrays.asList(fmtKeys);
for (Fragment fmt : fragments) { for (Fragment fmt : fragments) {
String tag = fmt.getTag(); String tag = fmt.getTag();
if (tags.indexOf(tag) > 0) { if (tags.indexOf(tag) > -1) {
IWebview webview = ((WebViewFragment) fmt).getWebview(); IWebview webview = ((WebViewFragment) fmt).getWebview();
webview.getWebview().getSettings().setTextZoom(zoom); webview.getWebview().getSettings().setTextZoom(zoom);
} }
......
...@@ -9,8 +9,12 @@ import com.tencent.smtt.sdk.ValueCallback; ...@@ -9,8 +9,12 @@ import com.tencent.smtt.sdk.ValueCallback;
import com.tencent.smtt.sdk.WebChromeClient; import com.tencent.smtt.sdk.WebChromeClient;
import com.tencent.smtt.sdk.WebView; import com.tencent.smtt.sdk.WebView;
import java.util.concurrent.atomic.AtomicBoolean;
public class MyWebChromeClient extends WebChromeClient { public class MyWebChromeClient extends WebChromeClient {
private final WebviewLoadListener listener; private final WebviewLoadListener listener;
private AtomicBoolean mIsLoadFinish = new AtomicBoolean();
private boolean mIsFinish = false;
public MyWebChromeClient(WebviewLoadListener listener) { public MyWebChromeClient(WebviewLoadListener listener) {
this.listener = listener; this.listener = listener;
...@@ -24,6 +28,13 @@ public class MyWebChromeClient extends WebChromeClient { ...@@ -24,6 +28,13 @@ public class MyWebChromeClient extends WebChromeClient {
@Override @Override
public void onProgressChanged(WebView view, int newProgress) { public void onProgressChanged(WebView view, int newProgress) {
if (null != this.listener) { 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); this.listener.onWebviewLoad(WebviewLoadListener.TYPE_PROGRESS, newProgress);
} }
super.onProgressChanged(view, newProgress); super.onProgressChanged(view, newProgress);
......
...@@ -40,7 +40,7 @@ public class MyWebViewClient extends WebViewClient { ...@@ -40,7 +40,7 @@ public class MyWebViewClient extends WebViewClient {
public void onPageFinished(WebView view, String url) { public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url); super.onPageFinished(view, url);
if (null != this.listener) { 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 { ...@@ -230,6 +230,7 @@ public class NativeApi {
Intent intent = new Intent(mActivity, OutsideWebviewActivity.class); Intent intent = new Intent(mActivity, OutsideWebviewActivity.class);
intent.putExtra("data", data.toJSONString()); intent.putExtra("data", data.toJSONString());
mActivity.startActivity(intent); 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!