main.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. "ui";
  2. ui.layout(
  3. <vertical padding="16" id="parent">
  4. <webview id="web" h="*" w="*" />
  5. </vertical>
  6. );
  7. let SCRIPT_CONF = require('./common/ScriptConf.js')
  8. let floatyObj = require('./demo.js');
  9. console.log(floatyObj)
  10. initUi('http://192.168.2.24:8080')
  11. ui.emitter.on("back_pressed", (e) => {
  12. e.consumed = true;
  13. activity.moveTaskToBack(true);
  14. });
  15. var storage = storages.create("dtok");
  16. function initUi(htmlPath) {
  17. webViewExpand_init(ui.web)
  18. if (htmlPath.indexOf('http') === 0) {
  19. ui.web.loadUrl(htmlPath)
  20. } else {
  21. let path = 'file:' + files.path(htmlPath)
  22. ui.web.loadUrl(path)
  23. }
  24. }
  25. let conf = {
  26. baseUrl: "https://ruanjian168.cc/"
  27. }
  28. ui.web.jsBridge.registerHandler("doLogin", (data, callBack) => {
  29. let loginUrl = conf.baseUrl + 'login'
  30. if (data == null) {
  31. toastLog("请填写用户名密码")
  32. return;
  33. }
  34. let loginObj = JSON.parse(data)
  35. if (!loginObj.hasOwnProperty('username')) {
  36. toastLog("请填写用户名")
  37. return;
  38. }
  39. if (!loginObj.hasOwnProperty('password')) {
  40. toastLog("请填写密码")
  41. return;
  42. }
  43. threads.start(function () {
  44. let res = http.post(loginUrl, {
  45. "name": loginObj.username,
  46. "passwd": loginObj.password
  47. })
  48. var loginRespObj = res.body.json();
  49. if (loginRespObj.code !== 200) {
  50. toastLog(loginRespObj.msg)
  51. } else {
  52. storage.put("token", loginRespObj.data.token)
  53. storage.put("userInfo", JSON.stringify(loginRespObj.data))
  54. callBack(loginRespObj.data.token)
  55. }
  56. });
  57. })
  58. ui.web.jsBridge.registerHandler("startScript", (data, callBack) => {
  59. let scriptUrl = "https://cybersicko.net/niuke/get_script"
  60. let token = storage.get("token")
  61. console.log("登录token" ,token)
  62. let dataObj = JSON.parse(data)
  63. threads.start(function () {
  64. let res = http.post(scriptUrl, {
  65. "module":dataObj.module
  66. },{
  67. headers: {"Authorization": token},
  68. });
  69. let scriptObj = res.body.json()
  70. console.log("getScript",scriptObj.msg)
  71. if (scriptObj.code == 401) {
  72. toastLog("请登录")
  73. callBack(scriptObj.code.toString())
  74. return
  75. }
  76. SCRIPT_CONF.script = scriptObj.data.script
  77. SCRIPT_CONF.conf = dataObj.conf
  78. SCRIPT_CONF.module = dataObj.module
  79. var packageName = "com.ss.android.ugc.aweme"; // 视频App的包名
  80. // 打开视频App
  81. launch(packageName);
  82. floatyObj.show()
  83. });
  84. })
  85. ui.web.jsBridge.registerHandler("getToken", (data, callBack) => {
  86. let token = storage.get("token")
  87. console.log("获取TOKEN", token)
  88. callBack(token)
  89. })
  90. ui.web.jsBridge.registerHandler("getUserInfo", (data, callBack) => {
  91. let userInfo = storage.get("userInfo")
  92. console.log("获取用户信息", userInfo)
  93. callBack(userInfo)
  94. })
  95. ui.web.jsBridge.registerHandler("reload", (data, callBack) => {
  96. console.log("刷新...")
  97. ui.web.reload()
  98. })
  99. ui.web.jsBridge.registerHandler("logout", (data, callBack) => {
  100. storage.remove("token")
  101. callBack(200)
  102. })
  103. ui.web.jsBridge.registerHandler("showToast", (data, callBack) => {
  104. console.log(data)
  105. toastLog(data)
  106. })
  107. // setTimeout(() => {
  108. // ui.web.jsBridge.callHandler('jsTest', '数据', (data) => {})
  109. // }, 1000)
  110. function webViewExpand_init(webview) {
  111. webview.setOnKeyListener(
  112. new android.view.View.OnKeyListener({
  113. onKey: function (v, keyCode, event) {
  114. if (event.getAction() == KeyEvent.ACTION_DOWN) {
  115. if (keyCode == KeyEvent.KEYCODE_BACK && webview.canGoBack()) {
  116. //表示按返回键
  117. log("返回键");
  118. ui.web.goBack(); //后退
  119. //webview.goForward();//前进
  120. return true; //已处理
  121. }
  122. }
  123. return false;
  124. },
  125. })
  126. );
  127. webview.webViewClient = new JavaAdapter(android.webkit.WebViewClient, {
  128. /** 页面开始加载, 此时还没有加载 index.html 中的代码 */
  129. onPageStarted: (webView, url, favicon) => {},
  130. /** 页面加载完成, 在 window.onload 之后触发 */
  131. onPageFinished: (webView, curUrl) => {
  132. webview.injectionJsBridge()
  133. },
  134. onReceivedError: (webView, webResourceRequest, webResourceError) => {
  135. let url = webResourceRequest.getUrl()
  136. let errorCode = webResourceError.getErrorCode()
  137. let description = webResourceError.getDescription()
  138. console.trace(errorCode + ' ' + description + ' ' + url)
  139. },
  140. })
  141. webview.webChromeClient = new JavaAdapter(android.webkit.WebChromeClient, {
  142. /** 拦截 web console 消息 */
  143. onConsoleMessage: (consoleMessage) => {
  144. /** @type {string} */
  145. let msg = consoleMessage.message()
  146. let sourceId = consoleMessage.sourceId().split('/')
  147. let sourceIdStr = sourceId[sourceId.length - 1]
  148. let lineNumber = consoleMessage.lineNumber()
  149. let msgLevel = consoleMessage.messageLevel()
  150. },
  151. })
  152. }