JavaScriptInterface.java 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. package com.baoshi.piece.utils;
  2. import android.app.Activity;
  3. import android.util.Log;
  4. import android.webkit.JavascriptInterface;
  5. import android.webkit.WebView;
  6. import com.baoshi.piece.db.dao.DeliveryDao;
  7. import com.baoshi.piece.db.po.DeliveryRecord;
  8. import com.yechaoa.yutils.GsonUtil;
  9. import com.yechaoa.yutils.SpUtil;
  10. import com.yechaoa.yutils.YUtils;
  11. import java.util.List;
  12. import java.util.Map;
  13. /**
  14. * 提供给H5调用的接口
  15. */
  16. public class JavaScriptInterface {
  17. private DeliveryDao deliveryDao;
  18. private final Activity activity;
  19. private final WebView webView;
  20. private final Map<String, String> headerParams;
  21. private final String SAVE_USER_ID = "USER_ID";
  22. public JavaScriptInterface(Activity activity, Map<String, String> headerParams, WebView webView, DeliveryDao deliveryDao) {
  23. this.activity = activity;
  24. this.webView = webView;
  25. this.headerParams = headerParams;
  26. this.deliveryDao = new DeliveryDao(activity);
  27. }
  28. /**
  29. * 返回
  30. */
  31. @JavascriptInterface
  32. public void goBack() {
  33. activity.moveTaskToBack(true);
  34. }
  35. /**
  36. * 关闭当前页面,回到主页
  37. */
  38. @JavascriptInterface
  39. public void finish() {
  40. activity.finish();
  41. }
  42. /**
  43. * H5获取header数据(window.android.getHeader)
  44. *
  45. * @return
  46. */
  47. @JavascriptInterface
  48. public String getHeader() {
  49. return GsonUtil.GsonString(headerParams);
  50. }
  51. /**
  52. * H5获取mac地址(window.android.getMacAddress)
  53. */
  54. @JavascriptInterface
  55. public String readMacAddress() {
  56. return MacAddressUtils.readMacAddress(activity);
  57. }
  58. /**
  59. * H5保存mac地址(window.android.saveMacAddress)
  60. * @param macAddress mac地址
  61. * @return true:保存成功,false:保存失败
  62. */
  63. @JavascriptInterface
  64. public boolean saveMacAddress(String macAddress) {
  65. return MacAddressUtils.saveMacAddress(activity, macAddress);
  66. }
  67. /**
  68. * 添加新记录
  69. *
  70. * @param macAddress mac地址
  71. * @param deliveryNo 快递单号
  72. * @param userId 用户id
  73. * @param userName 用户名
  74. * @return
  75. */
  76. @JavascriptInterface
  77. public long addDelivery(String macAddress, String deliveryNo, String userId, String userName) {
  78. DeliveryRecord record = new DeliveryRecord(deliveryNo, macAddress, userId, userName);
  79. return deliveryDao.addDelivery(record);
  80. }
  81. /**
  82. * 分页查询全部记录
  83. */
  84. @JavascriptInterface
  85. public String pageDelivery(int page, int size) {
  86. return GsonUtil.GsonString(deliveryDao.getRecordsPaginated(page, size));
  87. }
  88. /**
  89. * 焦点
  90. */
  91. @JavascriptInterface
  92. public void focus() {
  93. webView.requestFocus();
  94. }
  95. /**
  96. * 扫描成功语音
  97. */
  98. @JavascriptInterface
  99. public void scanSuccessVib() {
  100. TipActionUtils.getInstance().scanSuccessTip(activity);
  101. }
  102. /**
  103. * 扫描失败语音
  104. */
  105. @JavascriptInterface
  106. public void scanErrorVib() {
  107. TipActionUtils.getInstance().scanErrorTip(activity);
  108. }
  109. /**
  110. * 重复扫描语音
  111. */
  112. @JavascriptInterface
  113. public void scanRepeatVib() {
  114. TipActionUtils.getInstance().scanRepeatTip(activity);
  115. }
  116. /**
  117. * 请重新登录
  118. */
  119. @JavascriptInterface
  120. public void reLoginTip() {
  121. TipActionUtils.getInstance().reLoginTip(activity);
  122. }
  123. @JavascriptInterface
  124. public Boolean isDeliveryNoExists(String deliveryNo) {
  125. return deliveryDao.isDeliveryNoExists(deliveryNo);
  126. }
  127. @JavascriptInterface
  128. public void saveUserId(String userId) {
  129. SpUtil.setString(SAVE_USER_ID, userId);
  130. }
  131. @JavascriptInterface
  132. public String getUserId() {
  133. return SpUtil.getString(SAVE_USER_ID);
  134. }
  135. @JavascriptInterface
  136. public int getErrRecordsCount() {
  137. return deliveryDao.getErrRecordsCount();
  138. }
  139. @JavascriptInterface
  140. public String listErrRecords() {
  141. return GsonUtil.GsonString(deliveryDao.listErrRecords());
  142. }
  143. @JavascriptInterface
  144. public int updateDeliveryPushFail(String deliveryNo) {
  145. return deliveryDao.updateDeliveryPushFail(deliveryNo);
  146. }
  147. @JavascriptInterface
  148. public int markAsPushed(String deliveryNo) {
  149. return deliveryDao.markAsPushed(deliveryNo);
  150. }
  151. @JavascriptInterface
  152. public String getVersionName() {
  153. return YUtils.getVersionName();
  154. }
  155. @JavascriptInterface
  156. public void checkUpdate() {
  157. // 更新检查
  158. new UpdateUtils().init();
  159. }
  160. }