ChemicalApp.kt 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package com.example.chemical
  2. import android.app.Application
  3. import android.content.Context
  4. import android.util.Log
  5. import androidx.multidex.MultiDex
  6. import com.blankj.utilcode.util.AppUtils
  7. import com.blankj.utilcode.util.CrashUtils
  8. import com.blankj.utilcode.util.FileUtils
  9. import com.blankj.utilcode.util.LogUtils
  10. import com.rc.core.log.RcLog
  11. import com.rc.core.util.ScreenAdapter
  12. import com.rc.httpcore.HttpConfig
  13. import com.rc.httpcore.apk.LabInfo
  14. import com.rc.httpcore.bean.ConfigBean
  15. import com.rc.httpcore.bean.UserData
  16. import com.tencent.smtt.export.external.TbsCoreSettings
  17. import com.tencent.smtt.sdk.QbSdk
  18. //新版化学品-使用V3版本API
  19. class ChemicalApp : Application() {
  20. companion object {
  21. lateinit var appContext: Context
  22. @JvmField
  23. var userData: UserData? = null
  24. @JvmField
  25. var subjectId: String? = null //实验室id
  26. @JvmField
  27. var subjectName: String? = null //实验室name
  28. @JvmField
  29. var confs: ConfigBean? = null //基础信息以及 双人 认证方式
  30. @JvmField
  31. var labInfo: LabInfo? = null //基础信息以及 双人 认证方式
  32. @JvmField
  33. var subRoom: String? = null //房间号
  34. @JvmField
  35. var administrators = false //是否是校院级管理员 管控类的仅校级管理员或院级管理员可操作 新增入库 操作管控or非管控
  36. @JvmField
  37. var responsibles = false //是否是 责任人 实验室负责人或安全责任人、柜门管理员 新增入库 只能操作非管控
  38. }
  39. override fun onCreate() {
  40. super.onCreate()
  41. if (AppUtils.isAppDebug()) {
  42. HttpConfig.API_BASE_URL = "http://192.168.1.8/api/"
  43. HttpConfig.API_BASE_IMG_URL = "http://192.168.1.8/api/"
  44. }
  45. ScreenAdapter.initAppDensity(this)
  46. // initCrash(this)
  47. // initBugly()
  48. initX5()
  49. appContext = applicationContext
  50. initLog()
  51. }
  52. private fun initLog() {
  53. val logPath = "/sdcard/logs/"
  54. val crashPath = "/sdcard/logs/crash/"
  55. // log文件存储地址
  56. FileUtils.createOrExistsDir(logPath)
  57. FileUtils.createOrExistsDir(crashPath)
  58. CrashUtils.init(crashPath) { crashInfo ->
  59. LogUtils.e(crashInfo)
  60. }
  61. val config = LogUtils.getConfig()
  62. // log开关控制
  63. config.setLogSwitch(true)
  64. // log控制台开关
  65. config.setConsoleSwitch(true)
  66. // logTag
  67. config.setGlobalTag("Jayce")
  68. // log头部信息开关
  69. config.setLogHeadSwitch(true)
  70. // log文件开关
  71. config.setLog2FileSwitch(true)
  72. config.setDir(logPath)
  73. // log文件前缀
  74. config.setFilePrefix(AppUtils.getAppName() + "_App")
  75. // log边框开关
  76. config.setBorderSwitch(true)
  77. // log文件保存天数
  78. config.setSaveDays(7)
  79. }
  80. private fun initBugly() {
  81. /*
  82. * 第三个参数为SDK调试模式开关,调试模式的行为特性如下:
  83. * 1) 输出详细的Bugly SDK的Log;
  84. * 2) 每一条Crash都会被立即上报;
  85. * 3) 自定义日志将会在Logcat中输出。
  86. * 建议在测试阶段建议设置成true,发布时设置为false。
  87. */
  88. // if (BuildConfig.DEBUG) {//发布版x
  89. //
  90. // CrashReport.initCrashReport(this, Constants.APP_ID, false)
  91. // } else {
  92. // CrashReport.initCrashReport(this, Constants.APP_ID, true)
  93. // }
  94. RcLog.DE_BUG = true
  95. // CrashReport.initCrashReport(this, Constants.APP_ID, true)
  96. }
  97. override fun attachBaseContext(base: Context?) {
  98. super.attachBaseContext(base)
  99. MultiDex.install(this)
  100. }
  101. private fun initX5() {
  102. // TBS服务
  103. val initParam = mapOf(
  104. TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER to true,
  105. TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE to true
  106. )
  107. QbSdk.initTbsSettings(initParam)
  108. QbSdk.setDownloadWithoutWifi(true)
  109. QbSdk.initX5Environment(this, object : QbSdk.PreInitCallback {
  110. override fun onCoreInitFinished() {
  111. Log.i("LabApp", "onCoreInitFinished")
  112. }
  113. override fun onViewInitFinished(b: Boolean) {
  114. // 加载x5内核成功返回值为true,否则返回false,加载失败会调用系统的webview
  115. Log.i("LabApp", "x5初始化结果===$b")
  116. }
  117. })
  118. }
  119. }