Commit d823de6c authored by liusheng's avatar liusheng

1.解决webView界面下面ui黑块问题。2.添加接口返回401跳转登录的逻辑

parent b48a1802
......@@ -20,6 +20,7 @@
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<!-- 配置可查询包名, 配置测试游戏必须添加 添加 -->
<queries>
<package android:name="com.tencent.mm" />
<package android:name="com.tencent.mobileqq" />
......
......@@ -53,6 +53,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
private var mSensorManager: SensorManager? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
accelertorViewModel =
ViewModelProvider(this).get(AccelertorViewModel::class.java)
initPhoneUtils()
......
......@@ -206,9 +206,11 @@ class AccelertorFragment : XPageFragment() {
}
if (!LoginUtils.hasToken()) {
LoginUtils.login(this, {
context?.let { it1 ->
LoginUtils.login(it1, {
})
}
return@setOnClickListener
}
......@@ -268,13 +270,15 @@ class AccelertorFragment : XPageFragment() {
LoginUtils.token?.let {
openPage(CommonWebViewFragment::class.java, params)
} ?: let {
LoginUtils.login(this, {
context?.let { it1 ->
LoginUtils.login(it1, {
if (true) {
openPage(CommonWebViewFragment::class.java, params)
}
})
}
}
}
override fun onResume() {
super.onResume()
......
......@@ -16,7 +16,9 @@ import com.xuexiang.xpage.base.XPageFragment
import com.xuexiang.xutil.app.AppUtils
import com.xuexiang.xutil.system.PermissionUtils
import android.content.Intent
import android.media.audiofx.BassBoost
import android.net.Uri
import android.provider.Settings
import com.hjq.toast.ToastUtils
import java.lang.Exception
import android.util.DisplayMetrics
......@@ -52,20 +54,22 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
params.putString(CommonWebViewFragment.WEBVIEW_URL_KEY, HttpConfig.UI_MAIN_URL + url)
xPageFragment.openPage(CommonWebViewFragment::class.java, params)
} ?: let {
LoginUtils.login(xPageFragment) {
xPageFragment.context?.let { it1 ->
LoginUtils.login(it1) {
LoginUtils.token?.let {
agentWeb.getJsAccessEntrace()
.quickCallJs("userToken", it)
}
}
}
}
}
//打开系统设置
@JavascriptInterface
fun openSysSetting() {
NetworkUtils.openWirelessSettings()
xPageFragment.startActivity( Intent(Settings.ACTION_SETTINGS));
}
@JavascriptInterface
......@@ -77,13 +81,15 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
fun login(callback: String) {
LoginUtils.login(xPageFragment, {
xPageFragment.context?.let {
LoginUtils.login(it, {
if (it) {
agentWeb.getJsAccessEntrace()
.quickCallJs(callback, LoginUtils.token)
}
})
}
}
/**
* 智能极限加速
......
......@@ -70,6 +70,14 @@ class CommonWebViewFragment : XPageFragment() {
}
override fun onHiddenChanged(hidden: Boolean) {
super.onHiddenChanged(hidden)
}
override fun getUserVisibleHint(): Boolean {
return super.getUserVisibleHint()
}
override fun onPause() {
agentWeb?.getWebLifeCycle()?.onPause()
super.onPause()
......
package com.ccwangluo.accelerator.utils
import android.content.Context
import android.content.Intent
import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
import androidx.lifecycle.lifecycleScope
import com.ccwangluo.accelerator.model.LoginRes
import com.ccwangluo.accelerator.model.UserProfile
......@@ -12,6 +14,7 @@ import com.hjq.toast.ToastUtils
import com.tencent.mmkv.MMKV
import com.xuexiang.xpage.base.XPageFragment
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import java.util.*
......@@ -99,12 +102,12 @@ object LoginUtils {
timer?.cancel()
}
fun login(xPageFragment: XPageFragment, callBack: (Boolean) -> Unit) {
PhoneUtils.openLoginAuth(xPageFragment) { b, s ->
fun login(context: Context, callBack: (Boolean) -> Unit) {
PhoneUtils.openLoginAuth(context) { b, s ->
if (b) {
val map = mutableMapOf<String, String>()
map.put("token", s)
xPageFragment.lifecycleScope.launch(Dispatchers.IO) {
GlobalScope.launch(Dispatchers.IO) {
val res = HttpGo.postSync<LoginRes>("/api/user/flash/login", map)
res?.let {
if (it.code == 200) {
......@@ -125,11 +128,13 @@ object LoginUtils {
}
}
} else {
xPageFragment.startActivity(
Intent(
xPageFragment.context,
val intent = Intent(
context,
PhoneLoginActivity::class.java
)
intent.addFlags(FLAG_ACTIVITY_NEW_TASK )
context.startActivity(
intent
)
}
}
......
......@@ -49,9 +49,9 @@ object PhoneUtils {
}
}
fun openLoginAuth(xPageFragment: XPageFragment, callback: (Boolean, String) -> Unit) {
xPageFragment.context?.let {
OneKeyLoginManager.getInstance().setAuthThemeConfig(getEConfig(it, xPageFragment))
fun openLoginAuth(context: Context, callback: (Boolean, String) -> Unit) {
context?.let {
OneKeyLoginManager.getInstance().setAuthThemeConfig(getEConfig(it))
OneKeyLoginManager.getInstance().openLoginAuth(false,
{ code, result ->
......@@ -69,7 +69,7 @@ object PhoneUtils {
}
}
fun getEConfig(context: Context, xPageFragment: XPageFragment): ShanYanUIConfig? {
fun getEConfig(context: Context): ShanYanUIConfig? {
/************************************SDK固有控件 */
//登录按钮背景
......@@ -137,8 +137,8 @@ object PhoneUtils {
.setLogBtnImgPath(context.resources.getDrawable(R.mipmap.login_btn_onekey))
.addCustomView(
mOtherTv, true, false
) { context, view -> xPageFragment.startActivity(
Intent(xPageFragment.context,
) { context, view -> context.startActivity(
Intent(context,
PhoneLoginActivity::class.java)
) }
.setPrivacyState(false)
......
......@@ -6,6 +6,7 @@ import com.github.shadowsocks.http.HttpConfig
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.hjq.toast.ToastUtils
import com.xuexiang.xutil.XUtil
import okhttp3.*
import okhttp3.HttpUrl.Companion.toHttpUrl
import okhttp3.MediaType.Companion.toMediaTypeOrNull
......@@ -51,14 +52,19 @@ object HttpGo {
LoginUtils.token?.let {
request.addHeader("Authorization", it)
}
Timber.i("======getSync.token:"+LoginUtils.token)
Timber.i("%s%s", url, request.toString())
val call = okHttpClient.newCall(request.build())
val response: Response = call.execute()
if (response.isSuccessful) {
val type = object : TypeToken<BaseModel<T>>() {}.type
val string = response.body?.string()
Timber.i("%s%s", url, string.toString())
return gson.fromJson(string, type)
Timber.i("========%s%s", url, string.toString())
val result : BaseModel<T>? = gson.fromJson(string, type)
return result
} else if (response.code == 401){
LoginUtils.clearToken()
LoginUtils.login(XUtil.getContext(),{})
} else {
ToastUtils.show("网络错误")
}
......@@ -85,14 +91,29 @@ object HttpGo {
LoginUtils.token?.let {
request.addHeader("Authorization", it)
}
Timber.i("======postSync.token:"+LoginUtils.token)
Timber.i(request.toString())
val call = okHttpClient.newCall(request.build())
val response: Response = call.execute()
if (response.isSuccessful) {
val string = response.body?.string()
Timber.i(string.toString())
Timber.i("======postSync:"+string.toString())
val type = object : TypeToken<BaseModel<T>>() {}.type
return gson.fromJson(string, type)
val result : BaseModel<T>? = gson.fromJson(string, type)
result?.let {
if(it.code == 401) {
LoginUtils.clearToken()
LoginUtils.login(XUtil.getContext(),{})
}
}
return result
}else if (response.code == 401){
LoginUtils.clearToken()
LoginUtils.login(XUtil.getContext(),{})
} else {
ToastUtils.show("网络错误")
}
} catch (e: java.lang.Exception) {
ToastUtils.show("网络错误")
......
......@@ -5,7 +5,7 @@
android:layout_height="match_parent">
<FrameLayout
android:layout_marginTop="30dp"
android:layout_marginTop="0dp"
android:id="@+id/mine_webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
......
......@@ -50,7 +50,7 @@
android:id="@+id/game_news_list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="21dp"
android:layout_marginTop="10dp"
android:background="@color/white"
android:orientation="horizontal">
......
......@@ -67,6 +67,7 @@
<RelativeLayout
android:layout_width="match_parent"
android:layout_marginTop="40dp"
android:layout_height="wrap_content">
......
......@@ -2,12 +2,12 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:orientation="vertical">
<FrameLayout
android:layout_marginTop="30dp"
android:id="@+id/common_webview"
android:layout_marginBottom="50dp"
android:layout_width="match_parent"
android:layout_height="match_parent" />
......
......@@ -36,6 +36,8 @@
android:id="@+id/nickname"
android:layout_width="70.5dp"
android:layout_height="20dp"
android:singleLine="true"
android:ellipsize="end"
android:textColor="#FF000000"
android:textSize="14sp" />
......
......@@ -9,8 +9,8 @@
<ImageView
android:id="@+id/plugin_img"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_width="42dp"
android:layout_height="42dp"
android:layout_gravity="center_horizontal"
android:background="@mipmap/game_download" />
......
......@@ -23,7 +23,7 @@
<item name="colorPrimaryDark">@color/colorPrimary</item>
<item name="colorAccent">@color/black</item>
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowTranslucentNavigation">false</item>
<!-- <item name="android:background">@mipmap/splash</item>-->
<item name="android:windowBackground">@mipmap/win_bg</item>
<item name="android:windowDisablePreview">true</item>
......
......@@ -3,6 +3,7 @@ package com.github.shadowsocks.http
object HttpConfig {
//app后端
//val baseUrl = "http://10.16.1.98:9002"
val baseUrl = "https://test-cc-tt-api.orangenet.org.cn" //测试
// val baseUrl = "https://cc-tt-front.srccwl.com" //生产
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment