Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
ShenghuoquanBusiness
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
bp
ShenghuoquanBusiness
Commits
1235915f
Commit
1235915f
authored
Jul 09, 2021
by
shiyl
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改BaseApplication初始化多次,导致的注册服务多次的问题
parent
d3d35a13
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
263 additions
and
223 deletions
+263
-223
YdBaseApplication.kt
...mmon/src/main/java/com/yidian/common/YdBaseApplication.kt
+0
-223
AppUtils.kt
.../Common/src/main/java/com/yidian/common/utils/AppUtils.kt
+29
-0
CommodityApplication.kt
...yidian/shenghuoquan/commodity/app/CommodityApplication.kt
+2
-0
build.gradle
app/build.gradle
+3
-0
YdSubwayApplication.kt
...ain/java/com/shenghuoquan/business/YdSubwayApplication.kt
+229
-0
No files found.
CommonLib/Common/src/main/java/com/yidian/common/YdBaseApplication.kt
View file @
1235915f
...
...
@@ -2,234 +2,11 @@ package com.yidian.common
import
android.app.Activity
import
android.app.Application
import
android.content.Context
import
android.content.res.Configuration
import
android.os.Bundle
import
com.orhanobut.hawk.Hawk
import
com.scwang.smart.refresh.footer.ClassicsFooter
import
com.scwang.smart.refresh.header.ClassicsHeader
import
com.scwang.smart.refresh.layout.SmartRefreshLayout
import
com.scwang.smart.refresh.layout.constant.SpinnerStyle
import
com.yidian.common.http.ApiSaveCookiesInterceptor
import
com.yidian.common.http.ApiSetCookiesInterceptor
import
com.yidian.common.services.AppUpgradeService
import
com.yidian.common.services.ImageService
import
com.yidian.common.services.XEventService
import
com.yidian.common.services.XPageService
import
com.yidian.common.services.http.MBHttpReqService
import
com.yidian.common.utils.UMConfigUtils
import
com.yidian.commonutil.CommonUtilLifecycleModule
import
com.yidian.framework.mobile.xdiamond.SecretUtil
import
com.yidian.http.ServiceFactory
import
com.yidian.news.util.ProcessUtil
import
com.yidian.xarc.xbase.utils.XLogger
import
com.yidian.xarc.xbrid.*
import
com.yidian.xpage.XPageManager
import
com.yidian.yac.core.zap.Zap
import
com.yidian.yac.core.zap.ZapTicket
import
com.yidian.yac.ftdevicefinger.core.FtDeviceFingerManager
import
com.yidian.yac.pm.appupdate.PmUpdateApp
import
com.yidian.yac.pm.appupdate.YDAppUpdateManager
import
org.json.JSONObject
import
timber.log.Timber
open
class
YdBaseApplication
:
Application
()
{
private
val
module
:
CommonUtilLifecycleModule
by
lazy
{
CommonUtilLifecycleModule
(
com
.
yidian
.
xarc
.
xbrid
.
BuildConfig
.
DEBUG
,
this
,
".CommonInfrastructure"
)
}
private
val
activityLifecycle
=
object
:
ActivityLifecycleCallbacks
{
override
fun
onActivityCreated
(
activity
:
Activity
,
savedInstanceState
:
Bundle
?)
{
activityList
.
add
(
activity
)
}
override
fun
onActivityStarted
(
activity
:
Activity
)
{
}
override
fun
onActivityResumed
(
activity
:
Activity
)
{
}
override
fun
onActivityPaused
(
activity
:
Activity
)
{
}
override
fun
onActivityStopped
(
activity
:
Activity
)
{
}
override
fun
onActivitySaveInstanceState
(
activity
:
Activity
,
outState
:
Bundle
)
{
}
override
fun
onActivityDestroyed
(
activity
:
Activity
)
{
activityList
.
remove
(
activity
)
}
}
override
fun
onCreate
()
{
super
.
onCreate
()
// 先初始化日志防止调用时报初始化异常
if
(
BuildConfig
.
DEBUG
)
{
Timber
.
plant
(
Timber
.
DebugTree
())
}
UMConfigUtils
.
init
(
this
)
if
(
ProcessUtil
.
isMainProcess
(
this
))
{
context
=
this
FtDeviceFingerManager
.
init
(
this
)
initCommonUtils
()
Zap
.
init
(
this
)
{}
XPageManager
.
init
(
this
)
initXBridManager
()
loadService
()
registerActivityLifecycleCallbacks
(
activityLifecycle
)
// 初始化磐石SDK
SecretUtil
.
init
(
BuildConfig
.
IS_ENCRYPT_DEBUG_KEY
)
// 初始化App升级
initAppUpgrade
()
initSmartRefreshLayout
()
}
}
/**
* 设置刷新 默认的header和footer
*/
private
fun
initSmartRefreshLayout
()
{
//设置全局的Header构建器
SmartRefreshLayout
.
setDefaultRefreshHeaderCreator
{
context
,
layout
->
layout
.
setPrimaryColorsId
(
android
.
R
.
color
.
transparent
)
//全局设置主题颜色
ClassicsHeader
(
context
)
//指定为经典Header,默认是 贝塞尔雷达Header
}
//设置全局的Footer构建器
SmartRefreshLayout
.
setDefaultRefreshFooterCreator
{
context
,
layout
->
layout
.
setEnableLoadMoreWhenContentNotFull
(
true
)
//内容不满一页时候启用加载更多
val
footer
=
ClassicsFooter
(
context
)
footer
.
setBackgroundResource
(
android
.
R
.
color
.
transparent
)
footer
.
setDrawableSize
(
20f
)
footer
.
spinnerStyle
=
SpinnerStyle
.
FixedBehind
//设置为固定在背后模式
footer
//指定为经典Footer,默认是 BallPulseFooter
}
}
override
fun
attachBaseContext
(
base
:
Context
?)
{
super
.
attachBaseContext
(
base
)
if
(
ProcessUtil
.
isMainProcess
(
this
))
{
module
.
onBaseContextAttached
(
base
)
}
}
override
fun
onConfigurationChanged
(
newConfig
:
Configuration
)
{
super
.
onConfigurationChanged
(
newConfig
)
if
(
ProcessUtil
.
isMainProcess
(
this
))
{
module
.
onConfigurationChanged
(
newConfig
)
}
}
private
fun
initCommonUtils
()
{
module
.
onCreate
()
Hawk
.
init
(
this
).
build
()
initHttp
()
}
private
fun
initHttp
()
{
// val header = HashMap<String, String>()
// header["Content-Type"] = "application/json"
// header["charset"] = "UTF-8"
// ServiceFactory.getInstance().addInterceptor(HttpInterceptor(header))
// ServiceFactory.getInstance().init(true, URLs.BASE_URL, 10, 10)
ServiceFactory
.
getInstance
().
init
(
true
,
BuildConfig
.
API_URL
,
10
,
10
)
ServiceFactory
.
getInstance
().
addInterceptor
(
ApiSaveCookiesInterceptor
())
ServiceFactory
.
getInstance
().
addInterceptor
(
ApiSetCookiesInterceptor
())
}
private
fun
initXBridManager
()
{
XBridManager
.
init
(
XBridApp
(
applicationContext
)
{
assetRoot
=
"www"
//对应assets目录下存放xbrid资源对应的目录名
appId
=
applicationContext
.
packageName
//当前应用包名
platformId
=
16
//需要去平台申请
appVersion
=
AppConfig
.
cv
//当前应用版本号
deviceFinger
=
FtDeviceFingerManager
.
getDeviceFinger
()
//设备指纹
androidChannel
=
AppConfig
.
distribution
//对应渠道名
},
20
//webview缓存池数量,默认不缓存
)
XBridManager
.
registerServiceInvoker
(
object
:
OnServiceInvoke
{
override
fun
onCall
(
identifier
:
String
,
// the identifier assigned when webview created
xWebView
:
XWebView
,
// webivew 加载的 js 发起的服务调用请求
request
:
Request
,
// 具体的服务请求参数,分为 name 和 params 两个部分
response
:
Response
// 业务方需要借助 response 来回应服务调用结果
)
{
val
data
=
request
.
params
as
JSONObject
// JS调用Native传递的数据
Timber
.
tag
(
"xbrid"
).
e
(
"服务名:%s"
,
request
.
name
)
Timber
.
tag
(
"xbrid"
).
e
(
"JS传递参数:%s"
,
data
)
val
action
=
data
.
optString
(
"action"
)
val
params
=
data
.
optJSONObject
(
"params"
)
val
options
=
data
.
optJSONObject
(
"options"
)
// Native调用JS传递的数据
ZapTicket
(
request
.
name
).
withAction
(
action
).
withServiceParams
(
params
).
withServiceOptions
(
options
).
withIdentifier
(
identifier
)
.
onResult
{
result
->
response
.
result
(
result
.
code
,
result
.
result
?:
""
,
""
)
}.
onLost
{
result
->
response
.
result
(
result
.
code
,
""
,
result
.
mesg
)
}.
ship
()
}
})
XBridManager
.
registerXPageInvoker
(
object
:
OnXPageInvoke
{
override
fun
onCall
(
identifier
:
String
,
xWebView
:
XWebView
,
request
:
XPageRequest
)
{
val
params
=
mutableMapOf
<
String
,
Any
>()
(
request
.
params
as
JSONObject
).
let
{
reParams
->
reParams
.
keys
().
forEach
{
params
[
it
]
=
reParams
[
it
]
}
}
when
(
request
.
action
)
{
"push"
->
XPageManager
.
push
(
request
.
name
,
params
)
"pop"
->
XPageManager
.
pop
(
params
)
"popTo"
->
XPageManager
.
popTo
(
request
.
name
,
params
)
"popToRoot"
->
XPageManager
.
popToRoot
(
params
)
}
}
})
}
private
fun
loadService
()
{
Zap
.
addService
(
XPageService
.
SERVICE_NAME
,
XPageService
())
Zap
.
addService
(
XEventService
.
SERVICE_NAME
,
XEventService
())
Zap
.
addService
(
AppUpgradeService
.
SERVICE_NAME
,
AppUpgradeService
())
Zap
.
addService
(
MBHttpReqService
.
SERVICE_NAME
,
MBHttpReqService
())
Zap
.
addService
(
ImageService
.
SERVICE_NAME
,
ImageService
())
}
/**
* App升级
*/
private
fun
initAppUpgrade
()
{
val
logger
=
XLogger
(
"appUpgrade"
)
logger
.
debugOn
(
BuildConfig
.
DEBUG
)
YDAppUpdateManager
.
init
(
PmUpdateApp
(
this
)
{
online
=
BuildConfig
.
IS_APP_UPGRADE_ONLINE
// 线上true、线下false
platformId
=
AppConfig
.
TowerProPlatformId
// 平台Id
platform
=
AppConfig
.
TowerProPlatform
// ios/Android
appId
=
packageName
// 应用包名
appVersion
=
AppConfig
.
cv
// 客户端版本号
deviceFinger
=
FtDeviceFingerManager
.
getDeviceFinger
()
// 设备指纹
androidChannel
=
AppConfig
.
distribution
// 渠道
this
.
logger
=
logger
.
subLogger
(
"appUpgrade"
)
})
}
companion
object
{
...
...
CommonLib/Common/src/main/java/com/yidian/common/utils/AppUtils.kt
0 → 100644
View file @
1235915f
package
com.yidian.common.utils
import
android.app.ActivityManager
import
android.content.Context
import
android.os.Process
import
com.yidian.news.util.ProcessUtil
import
timber.log.Timber
object
AppUtils
{
fun
getProcessInfo
()
{
val
pid
=
Process
.
myPid
()
Timber
.
tag
(
"启动"
).
e
(
"YdBaseApplication onCreate ->>>>> pid: $pid"
)
val
currentProcessName
=
ProcessUtil
.
getCurrentProcessName
()
Timber
.
tag
(
"启动"
).
e
(
"YdBaseApplication onCreate ->>>>> processName: $currentProcessName"
)
}
private
fun
getCurrentProcessName
(
context
:
Context
):
String
?
{
val
pid
=
Process
.
myPid
()
val
mActivityManager
=
context
.
getSystemService
(
Context
.
ACTIVITY_SERVICE
)
as
ActivityManager
for
(
appProcess
in
mActivityManager
.
runningAppProcesses
)
{
if
(
appProcess
.
pid
==
pid
)
{
return
appProcess
.
processName
}
}
return
null
}
}
Components/commodity/src/main/java/com/yidian/shenghuoquan/commodity/app/CommodityApplication.kt
View file @
1235915f
...
...
@@ -3,6 +3,7 @@ package com.yidian.shenghuoquan.commodity.app
import
android.content.Intent
import
com.yidian.common.XRouterPathConstants
import
com.yidian.common.YdBaseApplication
import
com.yidian.common.utils.AppUtils
import
com.yidian.news.util.ProcessUtil
import
com.yidian.shenghuoquan.commodity.service.SelectCategoryService
import
com.yidian.shenghuoquan.commodity.ui.coupon.ChooseCategoryActivity
...
...
@@ -21,6 +22,7 @@ class CommodityApplication : YdBaseApplication() {
override
fun
onCreate
()
{
super
.
onCreate
()
AppUtils
.
getProcessInfo
()
if
(
ProcessUtil
.
isMainProcess
(
this
))
{
Timber
.
tag
(
"注册"
).
e
(
"开始注册"
)
registerXPage
()
...
...
app/build.gradle
View file @
1235915f
...
...
@@ -14,6 +14,7 @@ android {
versionCode
rootProject
.
ext
.
android
.
versionCode
versionName
rootProject
.
ext
.
android
.
versionName
buildConfigField
(
"boolean"
,
"IS_ENCRYPT_DEBUG_KEY"
,
rootProject
.
ext
.
android
.
isEncryptDebugKey
)
buildConfigField
(
"boolean"
,
"IS_APP_UPGRADE_ONLINE"
,
rootProject
.
ext
.
android
.
isAppUpgradeOnline
)
testInstrumentationRunner
"androidx.test.runner.AndroidJUnitRunner"
manifestPlaceholders
=
[
qqappid:
"101923771"
]
...
...
@@ -35,6 +36,7 @@ android {
buildTypes
{
debug
{
applicationIdSuffix
".debug"
buildConfigField
(
"String"
,
"API_URL"
,
rootProject
.
ext
.
buildParams
.
debug
.
API_URL
)
buildConfigField
(
"String"
,
"PROVIDER_NAME"
,
'\"'
+
rootProject
.
ext
.
android
.
applicationId
+
".debug.fileprovider"
+
'\"'
)
manifestPlaceholders
=
[
app_name
:
"商家版测试"
,
...
...
@@ -48,6 +50,7 @@ android {
signingConfig
signingConfigs
.
production
}
release
{
buildConfigField
(
"String"
,
"API_URL"
,
rootProject
.
ext
.
buildParams
.
release
.
API_URL
)
buildConfigField
(
"String"
,
"PROVIDER_NAME"
,
'\"'
+
rootProject
.
ext
.
android
.
applicationId
+
".fileprovider"
+
'\"'
)
manifestPlaceholders
=
[
app_name
:
"生活圈商家版"
,
...
...
app/src/main/java/com/shenghuoquan/business/YdSubwayApplication.kt
View file @
1235915f
package
com.shenghuoquan.business
import
android.app.Activity
import
android.content.Context
import
android.content.res.Configuration
import
android.os.Bundle
import
com.orhanobut.hawk.Hawk
import
com.scwang.smart.refresh.footer.ClassicsFooter
import
com.scwang.smart.refresh.header.ClassicsHeader
import
com.scwang.smart.refresh.layout.SmartRefreshLayout
import
com.scwang.smart.refresh.layout.constant.SpinnerStyle
import
com.yidian.common.AppConfig
import
com.yidian.common.YdBaseApplication
import
com.yidian.common.http.ApiSaveCookiesInterceptor
import
com.yidian.common.http.ApiSetCookiesInterceptor
import
com.yidian.common.services.AppUpgradeService
import
com.yidian.common.services.ImageService
import
com.yidian.common.services.XEventService
import
com.yidian.common.services.XPageService
import
com.yidian.common.services.http.MBHttpReqService
import
com.yidian.common.utils.AppUtils
import
com.yidian.common.utils.UMConfigUtils
import
com.yidian.commonutil.CommonUtilLifecycleModule
import
com.yidian.framework.mobile.xdiamond.SecretUtil
import
com.yidian.http.ServiceFactory
import
com.yidian.news.util.ProcessUtil
import
com.yidian.xarc.xbase.utils.XLogger
import
com.yidian.xarc.xbrid.*
import
com.yidian.xpage.XPageManager
import
com.yidian.yac.core.core.YacAppSpec
import
com.yidian.yac.core.zap.Zap
import
com.yidian.yac.core.zap.ZapTicket
import
com.yidian.yac.ftdevicefinger.core.FtDeviceFingerManager
import
com.yidian.yac.pm.appupdate.PmUpdateApp
import
com.yidian.yac.pm.appupdate.YDAppUpdateManager
import
org.json.JSONObject
import
timber.log.Timber
@YacAppSpec
...
...
@@ -9,6 +42,202 @@ class YdSubwayApplication : YdBaseApplication() {
override
fun
onCreate
()
{
super
.
onCreate
()
if
(
ProcessUtil
.
isMainProcess
(
this
))
{
Timber
.
tag
(
"启动"
).
e
(
"onCreate 开始执行"
)
context
=
this
// 先初始化日志防止调用时报初始化异常
if
(
BuildConfig
.
DEBUG
)
{
Timber
.
plant
(
Timber
.
DebugTree
())
}
UMConfigUtils
.
init
(
this
)
FtDeviceFingerManager
.
init
(
this
)
initCommonUtils
()
Zap
.
init
(
this
)
{}
XPageManager
.
init
(
this
)
initXBridManager
()
loadService
()
registerActivityLifecycleCallbacks
(
activityLifecycle
)
// 初始化磐石SDK
SecretUtil
.
init
(
BuildConfig
.
IS_ENCRYPT_DEBUG_KEY
)
// 初始化App升级
initAppUpgrade
()
initSmartRefreshLayout
()
Timber
.
tag
(
"启动"
).
e
(
"onCreate 执行完成"
)
}
}
/**
* 设置刷新 默认的header和footer
*/
private
fun
initSmartRefreshLayout
()
{
//设置全局的Header构建器
SmartRefreshLayout
.
setDefaultRefreshHeaderCreator
{
context
,
layout
->
layout
.
setPrimaryColorsId
(
android
.
R
.
color
.
transparent
)
//全局设置主题颜色
ClassicsHeader
(
context
)
//指定为经典Header,默认是 贝塞尔雷达Header
}
//设置全局的Footer构建器
SmartRefreshLayout
.
setDefaultRefreshFooterCreator
{
context
,
layout
->
layout
.
setEnableLoadMoreWhenContentNotFull
(
true
)
//内容不满一页时候启用加载更多
val
footer
=
ClassicsFooter
(
context
)
footer
.
setBackgroundResource
(
android
.
R
.
color
.
transparent
)
footer
.
setDrawableSize
(
20f
)
footer
.
spinnerStyle
=
SpinnerStyle
.
FixedBehind
//设置为固定在背后模式
footer
//指定为经典Footer,默认是 BallPulseFooter
}
}
override
fun
attachBaseContext
(
base
:
Context
?)
{
super
.
attachBaseContext
(
base
)
if
(
ProcessUtil
.
isMainProcess
(
this
))
{
module
.
onBaseContextAttached
(
base
)
}
}
override
fun
onConfigurationChanged
(
newConfig
:
Configuration
)
{
super
.
onConfigurationChanged
(
newConfig
)
if
(
ProcessUtil
.
isMainProcess
(
this
))
{
module
.
onConfigurationChanged
(
newConfig
)
}
}
private
fun
initCommonUtils
()
{
module
.
onCreate
()
Hawk
.
init
(
this
).
build
()
initHttp
()
}
private
val
module
:
CommonUtilLifecycleModule
by
lazy
{
CommonUtilLifecycleModule
(
com
.
yidian
.
xarc
.
xbrid
.
BuildConfig
.
DEBUG
,
this
,
".CommonInfrastructure"
)
}
private
val
activityLifecycle
=
object
:
ActivityLifecycleCallbacks
{
override
fun
onActivityCreated
(
activity
:
Activity
,
savedInstanceState
:
Bundle
?)
{
activityList
.
add
(
activity
)
}
override
fun
onActivityStarted
(
activity
:
Activity
)
{
}
override
fun
onActivityResumed
(
activity
:
Activity
)
{
}
override
fun
onActivityPaused
(
activity
:
Activity
)
{
}
override
fun
onActivityStopped
(
activity
:
Activity
)
{
}
override
fun
onActivitySaveInstanceState
(
activity
:
Activity
,
outState
:
Bundle
)
{
}
override
fun
onActivityDestroyed
(
activity
:
Activity
)
{
activityList
.
remove
(
activity
)
}
}
private
fun
initHttp
()
{
// val header = HashMap<String, String>()
// header["Content-Type"] = "application/json"
// header["charset"] = "UTF-8"
// ServiceFactory.getInstance().addInterceptor(HttpInterceptor(header))
// ServiceFactory.getInstance().init(true, URLs.BASE_URL, 10, 10)
ServiceFactory
.
getInstance
().
init
(
true
,
BuildConfig
.
API_URL
,
10
,
10
)
ServiceFactory
.
getInstance
().
addInterceptor
(
ApiSaveCookiesInterceptor
())
ServiceFactory
.
getInstance
().
addInterceptor
(
ApiSetCookiesInterceptor
())
}
private
fun
initXBridManager
()
{
XBridManager
.
init
(
XBridApp
(
applicationContext
)
{
assetRoot
=
"www"
//对应assets目录下存放xbrid资源对应的目录名
appId
=
applicationContext
.
packageName
//当前应用包名
platformId
=
16
//需要去平台申请
appVersion
=
AppConfig
.
cv
//当前应用版本号
deviceFinger
=
FtDeviceFingerManager
.
getDeviceFinger
()
//设备指纹
androidChannel
=
AppConfig
.
distribution
//对应渠道名
},
20
//webview缓存池数量,默认不缓存
)
XBridManager
.
registerServiceInvoker
(
object
:
OnServiceInvoke
{
override
fun
onCall
(
identifier
:
String
,
// the identifier assigned when webview created
xWebView
:
XWebView
,
// webivew 加载的 js 发起的服务调用请求
request
:
Request
,
// 具体的服务请求参数,分为 name 和 params 两个部分
response
:
Response
// 业务方需要借助 response 来回应服务调用结果
)
{
val
data
=
request
.
params
as
JSONObject
// JS调用Native传递的数据
Timber
.
tag
(
"xbrid"
).
e
(
"服务名:%s"
,
request
.
name
)
Timber
.
tag
(
"xbrid"
).
e
(
"JS传递参数:%s"
,
data
)
val
action
=
data
.
optString
(
"action"
)
val
params
=
data
.
optJSONObject
(
"params"
)
val
options
=
data
.
optJSONObject
(
"options"
)
// Native调用JS传递的数据
ZapTicket
(
request
.
name
).
withAction
(
action
).
withServiceParams
(
params
).
withServiceOptions
(
options
).
withIdentifier
(
identifier
)
.
onResult
{
result
->
response
.
result
(
result
.
code
,
result
.
result
?:
""
,
""
)
}.
onLost
{
result
->
response
.
result
(
result
.
code
,
""
,
result
.
mesg
)
}.
ship
()
}
})
XBridManager
.
registerXPageInvoker
(
object
:
OnXPageInvoke
{
override
fun
onCall
(
identifier
:
String
,
xWebView
:
XWebView
,
request
:
XPageRequest
)
{
val
params
=
mutableMapOf
<
String
,
Any
>()
(
request
.
params
as
JSONObject
).
let
{
reParams
->
reParams
.
keys
().
forEach
{
params
[
it
]
=
reParams
[
it
]
}
}
when
(
request
.
action
)
{
"push"
->
XPageManager
.
push
(
request
.
name
,
params
)
"pop"
->
XPageManager
.
pop
(
params
)
"popTo"
->
XPageManager
.
popTo
(
request
.
name
,
params
)
"popToRoot"
->
XPageManager
.
popToRoot
(
params
)
}
}
})
}
private
fun
loadService
()
{
Zap
.
addService
(
XPageService
.
SERVICE_NAME
,
XPageService
())
Zap
.
addService
(
XEventService
.
SERVICE_NAME
,
XEventService
())
Zap
.
addService
(
AppUpgradeService
.
SERVICE_NAME
,
AppUpgradeService
())
Zap
.
addService
(
MBHttpReqService
.
SERVICE_NAME
,
MBHttpReqService
())
Zap
.
addService
(
ImageService
.
SERVICE_NAME
,
ImageService
())
}
/**
* App升级
*/
private
fun
initAppUpgrade
()
{
val
logger
=
XLogger
(
"appUpgrade"
)
logger
.
debugOn
(
BuildConfig
.
DEBUG
)
YDAppUpdateManager
.
init
(
PmUpdateApp
(
this
)
{
online
=
BuildConfig
.
IS_APP_UPGRADE_ONLINE
// 线上true、线下false
platformId
=
AppConfig
.
TowerProPlatformId
// 平台Id
platform
=
AppConfig
.
TowerProPlatform
// ios/Android
appId
=
packageName
// 应用包名
appVersion
=
AppConfig
.
cv
// 客户端版本号
deviceFinger
=
FtDeviceFingerManager
.
getDeviceFinger
()
// 设备指纹
androidChannel
=
AppConfig
.
distribution
// 渠道
this
.
logger
=
logger
.
subLogger
(
"appUpgrade"
)
})
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment