JavaScriptInterface.java 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  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. String s = MacAddressUtils.readMacAddress(activity);
  57. Log.i("JavaScriptInterface", s);
  58. return s;
  59. }
  60. /**
  61. * H5保存mac地址(window.android.saveMacAddress)
  62. * @param macAddress mac地址
  63. * @return true:保存成功,false:保存失败
  64. */
  65. @JavascriptInterface
  66. public boolean saveMacAddress(String macAddress) {
  67. return MacAddressUtils.saveMacAddress(activity, macAddress);
  68. }
  69. /**
  70. * 添加新记录
  71. *
  72. * @param macAddress mac地址
  73. * @param deliveryNo 快递单号
  74. * @param userId 用户id
  75. * @param userName 用户名
  76. * @return
  77. */
  78. @JavascriptInterface
  79. public long addDelivery(String macAddress, String deliveryNo, String userId, String userName) {
  80. DeliveryRecord record = new DeliveryRecord(deliveryNo, macAddress, userId, userName);
  81. return deliveryDao.addDelivery(record);
  82. }
  83. /**
  84. * 分页查询全部记录
  85. */
  86. @JavascriptInterface
  87. public String pageDelivery(int page, int size) {
  88. return GsonUtil.GsonString(deliveryDao.getRecordsPaginated(page, size));
  89. }
  90. /**
  91. * 焦点
  92. */
  93. @JavascriptInterface
  94. public void focus() {
  95. webView.requestFocus();
  96. }
  97. /**
  98. * 扫描成功语音
  99. */
  100. @JavascriptInterface
  101. public void scanSuccessVib() {
  102. TipActionUtils.getInstance().scanSuccessTip(activity);
  103. }
  104. /**
  105. * 扫描失败语音
  106. */
  107. @JavascriptInterface
  108. public void scanErrorVib() {
  109. TipActionUtils.getInstance().scanErrorTip(activity);
  110. }
  111. /**
  112. * 重复扫描语音
  113. */
  114. @JavascriptInterface
  115. public void scanRepeatVib() {
  116. TipActionUtils.getInstance().scanRepeatTip(activity);
  117. }
  118. @JavascriptInterface
  119. public void saveUserId(String userId) {
  120. SpUtil.setString(SAVE_USER_ID, userId);
  121. }
  122. @JavascriptInterface
  123. public String getUserId() {
  124. return SpUtil.getString(SAVE_USER_ID);
  125. }
  126. @JavascriptInterface
  127. public int updateDeliveryPushFail(String deliveryNo) {
  128. return deliveryDao.updateDeliveryPushFail(deliveryNo);
  129. }
  130. @JavascriptInterface
  131. public int markAsPushed(String deliveryNo) {
  132. return deliveryDao.markAsPushed(deliveryNo);
  133. }
  134. @JavascriptInterface
  135. public String getVersionName() {
  136. return YUtils.getVersionName();
  137. }
  138. @JavascriptInterface
  139. public void checkUpdate() {
  140. // 更新检查
  141. new UpdateUtils().init();
  142. }
  143. }