Commit f4913a1b by amateur

1

1 parent c789005d
......@@ -4,7 +4,6 @@ package com.polysoft.nafmii.webview;
import android.util.Log;
import com.alibaba.fastjson.JSON;
import com.tencent.smtt.sdk.ValueCallback;
import com.tencent.smtt.sdk.WebView;
public class JavaToJsinterface {
......@@ -18,12 +17,7 @@ public class JavaToJsinterface {
public void callJs(String methodName, String json) {
String param = JSON.toJSONString(json);
String script = String.format("javascript:$api.%s(%s)", methodName, param);
this.mWebView.evaluateJavascript(script, new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.d(TAG, String.format("JavaToJsinterface: callJs is %s result : %s", methodName, value));
}
});
this.mWebView.evaluateJavascript(script, value -> Log.d(TAG, String.format("JavaToJsinterface: callJs is %s result : %s", methodName, value)));
}
}
......@@ -12,7 +12,6 @@ import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.util.TypeUtils;
import com.polysoft.nafmii.bean.JsResult;
import com.polysoft.nafmii.broadcast.Receiver;
import com.polysoft.nafmii.broadcast.ReceiverListener;
import com.polysoft.nafmii.broadcast.ShareReceiver;
import com.polysoft.nafmii.utils.CtxUtils;
import com.polysoft.nafmii.utils.StatusBarUtils;
......@@ -24,8 +23,8 @@ import java.util.HashMap;
import java.util.Map;
public class JsToJavaInterface {
private Activity mActivity;
private JavaToJsinterface javaTojs;
private final Activity mActivity;
private final JavaToJsinterface javaTojs;
private Fragment mFragment;
public JsToJavaInterface(Activity activity, JavaToJsinterface javaTojs) {
......@@ -40,65 +39,45 @@ public class JsToJavaInterface {
@JavascriptInterface
public void nativeAppInfo(String params) {
new JsInterfaceHandler(mActivity, javaTojs).parse(params, new JsInterfaceHandler.JsHandle() {
@Override
public void handle(JSONObject data, JsInterfaceHandler.JsInterface js) {
new JsInterfaceHandler(mActivity, javaTojs).parse(params, (data, js) -> {
final Map<String, Object> dataMap = new HashMap<>();
PackageInfo packageInfo = CtxUtils.getPackageInfo();
dataMap.put("versionCode", packageInfo.versionCode);
dataMap.put("versionName", packageInfo.versionName);
dataMap.put("statusBarHeight", StatusBarUtils.getStatusBarHeight(mActivity));
js.success(dataMap);
}
});
}
@JavascriptInterface
public void nativeMenu(String params) {
new JsInterfaceHandler(mActivity, javaTojs).parse(params, new JsInterfaceHandler.JsHandle() {
@Override
public void handle(JSONObject data, JsInterfaceHandler.JsInterface js) {
new JsInterfaceHandler(mActivity, javaTojs).parse(params, (data, js) -> {
}
});
}
@JavascriptInterface
public void nativeLogin(String params) {
new JsInterfaceHandler(mActivity, javaTojs).parse(params, new JsInterfaceHandler.JsHandle() {
@Override
public void handle(JSONObject data, JsInterfaceHandler.JsInterface js) {
new JsInterfaceHandler(mActivity, javaTojs).parse(params, (data, js) -> {
}
});
}
@JavascriptInterface
public void nativeShare(String params) {
new JsInterfaceHandler(mActivity, javaTojs).parse(params, new JsInterfaceHandler.JsHandle() {
@Override
public void handle(JSONObject data, JsInterfaceHandler.JsInterface js) {
new JsInterfaceHandler(mActivity, javaTojs).parse(params, (data, js) -> {
WechatApi instance = WechatApi.getInstance(mActivity);
if (!instance.isWXAppInstalled()) {
js.callJs(JsResult.fail("未安装应用"));
}
final Receiver<ShareResult> shareReceiver = ShareReceiver.getInstance(mActivity);
shareReceiver.addDefaultListener(new ReceiverListener<ShareResult>() {
@Override
public void onReceiverResult(String action, ShareResult share) {
js.callJs(new JsResult(share.getStatus(), share.getStatusText(), null));
shareReceiver.addDefaultListener((action, share) -> {
js.callJs(share);
shareReceiver.addDefaultListener(null);
}
});
mActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
instance.share(mActivity, TypeUtils.castToJavaBean(data, ShareBean.class));
}
});
}
mActivity.runOnUiThread(() -> instance.share(mActivity, TypeUtils.castToJavaBean(data, ShareBean.class)));
});
}
......
......@@ -3,7 +3,6 @@ package com.polysoft.nafmii.webview;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.util.Log;
import com.tencent.smtt.export.external.interfaces.SslError;
import com.tencent.smtt.export.external.interfaces.SslErrorHandler;
......@@ -17,7 +16,7 @@ import java.util.Map;
import ren.yale.android.cachewebviewlib.WebViewCacheInterceptorInst;
public class MyWebViewClient extends WebViewClient {
private WebviewLoadListener listener;
private final WebviewLoadListener listener;
public MyWebViewClient(WebviewLoadListener listener) {
this.listener = listener;
......
......@@ -2,52 +2,26 @@ package com.polysoft.nafmii.wechat;
import android.text.TextUtils;
import com.alibaba.fastjson.annotation.JSONField;
import com.polysoft.nafmii.bean.JsResult;
import java.io.Serializable;
public class ShareResult extends JsResult{
public static final String CANCEL = "-2";
public class ShareResult implements Serializable {
@JSONField(name = "status")
private String status;
@JSONField(name = "statusText")
private String statusText;
private ShareResult() {
public ShareResult(String status, String statusText, Object data) {
super(status, statusText, data);
}
private ShareResult(String status, String statusText) {
this.status = status;
this.statusText = statusText;
public static JsResult shareSuccess() {
return JsResult.success("分享成功", null);
}
public static ShareResult shareSuccess() {
return new ShareResult("0", "分享成功");
}
public static ShareResult shareFail(String text) {
public static JsResult shareFail(String text) {
String statusText = TextUtils.isEmpty(text) ? text : "分享失败";
return new ShareResult("-1", statusText);
}
public static ShareResult shareCancel() {
return new ShareResult("-2", "分享取消");
}
public String getStatus() {
return status;
return JsResult.fail(statusText);
}
public void setStatus(String status) {
this.status = status;
public static JsResult shareCancel() {
return new JsResult(CANCEL, "分享取消", null);
}
public String getStatusText() {
return statusText;
}
public void setStatusText(String statusText) {
this.statusText = statusText;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!