Commit 0169e465 authored by 王雪伟's avatar 王雪伟

[提交人]:王雪伟

[提交简述] :小象省钱
[实现方案] :会员支付超时策略,首次登陆显示会员页
parent d8a3e73d
...@@ -108,14 +108,17 @@ public class MainActivity extends BaseActivity implements NavigationBottomView.N ...@@ -108,14 +108,17 @@ public class MainActivity extends BaseActivity implements NavigationBottomView.N
} }
}); });
UserInfo userInfoData = SettingPreference.getUserInfoData(); boolean firstLoginApp = SettingPreference.getFirstLoginApp();
if (userInfoData != null) { if (firstLoginApp) {
Constant.Switch.isOpenVip = userInfoData.member; SettingPreference.setFirstLoginApp();
if (!userInfoData.member) { UserInfo userInfoData = SettingPreference.getUserInfoData();
JumpUtils.OpenMember(); if (userInfoData != null) {
Constant.Switch.isOpenVip = userInfoData.member;
if (!userInfoData.member) {
JumpUtils.OpenMember();
}
} }
} }
} }
private void initListener() { private void initListener() {
......
...@@ -1474,6 +1474,19 @@ public class SettingPreference { ...@@ -1474,6 +1474,19 @@ public class SettingPreference {
editor.commit(); editor.commit();
} }
public static boolean getFirstLoginApp() {
SharedPreferences settings = AppContext.get().getSharedPreferences(USER_SETTING, 0);
Boolean str = settings.getBoolean("first_login_app", true);
return str;
}
public static void setFirstLoginApp() {
SharedPreferences settings = AppContext.get().getSharedPreferences(USER_SETTING, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("first_login_app", false);
editor.commit();
}
public static int getFirstOpenDiscountBox() { public static int getFirstOpenDiscountBox() {
SharedPreferences settings = AppContext.get().getSharedPreferences(USER_SETTING, 0); SharedPreferences settings = AppContext.get().getSharedPreferences(USER_SETTING, 0);
int str = settings.getInt("first_free_box_num", 0); int str = settings.getInt("first_free_box_num", 0);
......
...@@ -2,6 +2,7 @@ package com.zxbw.modulemain.activity ...@@ -2,6 +2,7 @@ package com.zxbw.modulemain.activity
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.net.http.SslError
import android.os.Handler import android.os.Handler
import android.util.Log import android.util.Log
import android.view.View import android.view.View
...@@ -49,7 +50,7 @@ class OpenMemberOrderActivity : BaseActivity(), PayContract.View { ...@@ -49,7 +50,7 @@ class OpenMemberOrderActivity : BaseActivity(), PayContract.View {
const val H5_PAY = 21 //h5支付 const val H5_PAY = 21 //h5支付
} }
private var pay_type: Int? = 0 private var pay_type: Int? = H5_PAY
override fun before() { override fun before() {
super.before() super.before()
setStatusBarBackground(AppContext.get().resources.getColor(R.color.transparent)) setStatusBarBackground(AppContext.get().resources.getColor(R.color.transparent))
...@@ -272,6 +273,7 @@ class OpenMemberOrderActivity : BaseActivity(), PayContract.View { ...@@ -272,6 +273,7 @@ class OpenMemberOrderActivity : BaseActivity(), PayContract.View {
} }
private fun loadH5Pay(form: String) { private fun loadH5Pay(form: String) {
mHandler?.sendEmptyMessageDelayed(0, 8000)
val webSettings = id_member_pay_web_view.settings val webSettings = id_member_pay_web_view.settings
//如果访问的页面中要与Javascript交互,则webview必须设置支持Javascript //如果访问的页面中要与Javascript交互,则webview必须设置支持Javascript
webSettings.javaScriptEnabled = true webSettings.javaScriptEnabled = true
...@@ -290,42 +292,59 @@ class OpenMemberOrderActivity : BaseActivity(), PayContract.View { ...@@ -290,42 +292,59 @@ class OpenMemberOrderActivity : BaseActivity(), PayContract.View {
id_member_pay_web_view?.webViewClient = object : WebViewClient() { id_member_pay_web_view?.webViewClient = object : WebViewClient() {
override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean { override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean {
Log.e("WXW", "dURL" + url.toString())
if (url == null) return false if (url == null) return false
try { try {
if (url.startsWith("alipays://") //支付宝 if (url.startsWith("alipays://") //支付宝
) { ) {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url)) val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent) startActivity(intent)
EventUtils.onEvent("h5_open_zfb_suc")
mHandler?.removeMessages(0)
return true return true
} }
} catch (e: Exception) { //防止crash (如果手机上没有安装处理某个scheme开头的url的APP, 会导致crash) } catch (e: Exception) { //防止crash (如果手机上没有安装处理某个scheme开头的url的APP, 会导致crash)
EventUtils.onEvent("h5_open_zfb_error", e.toString()) EventUtils.onEvent("h5_open_zfb_error", e.toString())
mHandler?.removeMessages(0)
showResultLoading(false) showResultLoading(false)
return true //没有安装该app时,返回true,表示拦截自定义链接,但不跳转,避免弹出上面的错误页面 return true //没有安装该app时,返回true,表示拦截自定义链接,但不跳转,避免弹出上面的错误页面
} }
//处理http和https开头的url //处理http和https开头的url
view?.loadUrl(url) // view?.loadUrl(url)?
return false return false
} }
override fun onPageFinished(view: WebView?, url: String?) { override fun onPageFinished(view: WebView?, url: String?) {
Log.e("WXW", "cURL" + url.toString())
Log.d("wxw", "EndTime" + System.currentTimeMillis())
super.onPageFinished(view, url) super.onPageFinished(view, url)
if (url?.contains(NetConfig.H5.WEB_URL_H5_PAY) == true) { if (url?.contains(NetConfig.H5.WEB_URL_H5_PAY) == true) {
id_member_pay_web_view?.loadUrl("javascript:loadPayHtml('$form')"); id_member_pay_web_view?.loadUrl("javascript:loadPayHtml('$form')");
} }
} }
override fun onReceivedSslError(
view: WebView?,
handler: SslErrorHandler?,
error: SslError?
) {
// 接受所有网站的证书,忽略SSL错误,执行访问网页
handler?.proceed();
}
override fun onReceivedError( override fun onReceivedError(
view: WebView?, view: WebView?,
request: WebResourceRequest?, request: WebResourceRequest?,
error: WebResourceError? error: WebResourceError?
) { ) {
super.onReceivedError(view, request, error) super.onReceivedError(view, request, error)
EventUtils.onEvent("h5_pay_error1", error.toString()) if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
showResultLoading(false) // Log.d("wxw", "1error${error?.errorCode}")
// Log.d("wxw", "2error${error?.description}")
EventUtils.onEvent(
"h5_pay_error1",
"code: ${error?.errorCode} desc: ${error?.description}"
)
} else {
EventUtils.onEvent("h5_pay_error1", error.toString())
}
} }
override fun onReceivedHttpError( override fun onReceivedHttpError(
...@@ -333,9 +352,19 @@ class OpenMemberOrderActivity : BaseActivity(), PayContract.View { ...@@ -333,9 +352,19 @@ class OpenMemberOrderActivity : BaseActivity(), PayContract.View {
request: WebResourceRequest?, request: WebResourceRequest?,
errorResponse: WebResourceResponse? errorResponse: WebResourceResponse?
) { ) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
if (request?.url?.path?.endsWith("/favicon.ico") == true) {
} else {
EventUtils.onEvent(
"h5_pay_error2",
errorResponse?.statusCode.toString() + " url:${request?.url}"
)
}
} else {
EventUtils.onEvent("h5_pay_error2", errorResponse.toString())
}
super.onReceivedHttpError(view, request, errorResponse) super.onReceivedHttpError(view, request, errorResponse)
EventUtils.onEvent("h5_pay_error2", errorResponse.toString())
showResultLoading(false)
} }
} }
id_member_pay_web_view.loadUrl(NetConfig.H5.WEB_URL_H5_PAY) id_member_pay_web_view.loadUrl(NetConfig.H5.WEB_URL_H5_PAY)
......
...@@ -9,6 +9,7 @@ import com.zxhl.cms.net.RxSchedulers ...@@ -9,6 +9,7 @@ import com.zxhl.cms.net.RxSchedulers
import com.zxhl.cms.net.SettingPreference import com.zxhl.cms.net.SettingPreference
import com.zxhl.cms.net.callback.BaseObserver import com.zxhl.cms.net.callback.BaseObserver
import com.zxhl.cms.net.model.uc.UserInfo import com.zxhl.cms.net.model.uc.UserInfo
import com.zxhl.cms.utils.AdCallback
import com.zxhl.cms.utils.EventUtils import com.zxhl.cms.utils.EventUtils
import com.zxhl.cms.utils.UserDataUtils import com.zxhl.cms.utils.UserDataUtils
...@@ -54,8 +55,11 @@ class LoginPresenter:LoginContract.Presenter{ ...@@ -54,8 +55,11 @@ class LoginPresenter:LoginContract.Presenter{
EventUtils.onEvent("login_suc", "codeLogin") EventUtils.onEvent("login_suc", "codeLogin")
// Constant.newAwardFlag = result.newAwardFlag // Constant.newAwardFlag = result.newAwardFlag
SettingPreference.saveToken(token) SettingPreference.saveToken(token)
UserDataUtils.updateUserInfo(null) UserDataUtils.updateUserInfo(object :AdCallback<String>{
mView.loginSuc() override fun onResult(code: Int, result: String?) {
mView.loginSuc()
}
})
// getUserInfo() // getUserInfo()
} }
}else{ }else{
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
android:id="@+id/id_home_top_banner_view" android:id="@+id/id_home_top_banner_view"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="280dp" android:layout_height="280dp"
android:paddingBottom="16dp"> android:paddingBottom="8dp">
<androidx.viewpager.widget.ViewPager <androidx.viewpager.widget.ViewPager
android:id="@+id/id_home_top_banner" android:id="@+id/id_home_top_banner"
......
...@@ -26,7 +26,8 @@ ...@@ -26,7 +26,8 @@
android:background="@drawable/icon_box_jiaobiao" android:background="@drawable/icon_box_jiaobiao"
android:gravity="center" android:gravity="center"
android:text="限时盲盒" android:text="限时盲盒"
android:textColor="@color/white" android:textStyle="bold"
android:textColor="#F8E8CC"
android:textSize="12sp" /> android:textSize="12sp" />
...@@ -60,7 +61,7 @@ ...@@ -60,7 +61,7 @@
android:layout_height="20dp" android:layout_height="20dp"
android:gravity="center" android:gravity="center"
android:text="减" android:text="减"
android:textColor="@color/white" android:textColor="#FFECD3"
android:textSize="12sp" /> android:textSize="12sp" />
<TextView <TextView
...@@ -69,7 +70,7 @@ ...@@ -69,7 +70,7 @@
android:layout_height="20dp" android:layout_height="20dp"
android:gravity="center_vertical" android:gravity="center_vertical"
android:text="已减10元" android:text="已减10元"
android:textColor="#437EEE" android:textColor="@color/color_333333"
android:textSize="12sp" /> android:textSize="12sp" />
</LinearLayout> </LinearLayout>
......
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