Commit 108e882d authored by shiyl's avatar shiyl

add 微信授权页面搭建

parent fa70e6cf
...@@ -3,63 +3,6 @@ ...@@ -3,63 +3,6 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
package="com.yidian.common"> package="com.yidian.common">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<application>
<!-- 以下为友盟分享基本配置信息 start-->
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${file_provider}"
android:exported="false"
android:grantUriPermissions="true"
tools:replace="android:authorities">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"
tools:replace="android:resource" />
</provider>
<!--微信分享/登录-->
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent101923771" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="com.umeng.socialize.media.WBShareCallBackActivity"
android:configChanges="keyboardHidden|orientation"
android:exported="false"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="com.sina.weibo.sdk.web.WeiboSdkWebActivity"
android:configChanges="keyboardHidden|orientation"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<!-- 以上为友盟分享基本配置信息 end-->
</application>
</manifest> </manifest>
...@@ -28,6 +28,7 @@ import com.yidian.shenghuoquan.newscontent.ui.dialog.HintDialog ...@@ -28,6 +28,7 @@ import com.yidian.shenghuoquan.newscontent.ui.dialog.HintDialog
import com.yidian.shenghuoquan.newscontent.ui.dialog.MerchantCenterBottomHintDialog import com.yidian.shenghuoquan.newscontent.ui.dialog.MerchantCenterBottomHintDialog
import com.yidian.shenghuoquan.newscontent.widget.CommonTopBarView import com.yidian.shenghuoquan.newscontent.widget.CommonTopBarView
import com.yidian.shenghuoquan.newscontent.widget.LifeAccountLabelView import com.yidian.shenghuoquan.newscontent.widget.LifeAccountLabelView
import com.yidian.shenghuoquan.newscontent.widget.MerchantAssetView
import com.yidian.utils.ToastUtil import com.yidian.utils.ToastUtil
import com.yidian.xarc.xevent.XBaseEvent import com.yidian.xarc.xevent.XBaseEvent
import com.yidian.xarc.xevent.XEventManager import com.yidian.xarc.xevent.XEventManager
...@@ -99,6 +100,14 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(), ...@@ -99,6 +100,14 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(),
private fun initListener() { private fun initListener() {
viewBind.lvLifeAccountLabel.setOnLifeAccountLabelCallback(this) viewBind.lvLifeAccountLabel.setOnLifeAccountLabelCallback(this)
// 点击钱包余额进入我的钱包
viewBind.avMerchantAsset.setOnClickWalletCallback(object : MerchantAssetView.OnClickWalletCallback {
override fun toMyWallet(balance: String) {
val map = HashMap<String, String?>()
map["balance"] = balance
XPageManager.push(XRouterPathConstants.MY_WALLET, map)
}
})
} }
private fun initData() { private fun initData() {
......
...@@ -38,7 +38,9 @@ class MyWalletActivity : BaseActivity<ActivityMyWalletBinding>() { ...@@ -38,7 +38,9 @@ class MyWalletActivity : BaseActivity<ActivityMyWalletBinding>() {
} }
// todo 提现(仅管理员可以发起提现) // todo 提现(仅管理员可以发起提现)
viewBind.tvWithdraw.clickAntiShake { viewBind.tvWithdraw.clickAntiShake {
XPageManager.push(XRouterPathConstants.VERIFY_IDENTITY, null) // XPageManager.push(XRouterPathConstants.VERIFY_IDENTITY, null)
// todo 测试代码
XPageManager.push(XRouterPathConstants.WECHAT_AUTH, null)
} }
} }
......
...@@ -11,6 +11,7 @@ import com.yidian.common.extensions.initTitleBar ...@@ -11,6 +11,7 @@ import com.yidian.common.extensions.initTitleBar
import com.yidian.shenghuoquan.newscontent.databinding.ActivityVerifyIdentifyBinding import com.yidian.shenghuoquan.newscontent.databinding.ActivityVerifyIdentifyBinding
import com.yidian.shenghuoquan.newscontent.utils.CountDownTimerUtils import com.yidian.shenghuoquan.newscontent.utils.CountDownTimerUtils
import com.yidian.shenghuoquan.newscontent.utils.TextWatcherAdapter import com.yidian.shenghuoquan.newscontent.utils.TextWatcherAdapter
import com.yidian.xpage.XPageManager
/** /**
* 钱包主人验证身份 * 钱包主人验证身份
...@@ -34,7 +35,6 @@ class VerifyIdentityActivity : BaseActivity<ActivityVerifyIdentifyBinding>() { ...@@ -34,7 +35,6 @@ class VerifyIdentityActivity : BaseActivity<ActivityVerifyIdentifyBinding>() {
requestSmsCode() requestSmsCode()
} }
@SuppressLint("SetTextI18n")
private fun initView() { private fun initView() {
initTitleBar(viewBind.include.toolbar, viewBind.include.tvTitle, "") initTitleBar(viewBind.include.toolbar, viewBind.include.tvTitle, "")
// 默认显示空,等发送成功后再提示接收的手机号 // 默认显示空,等发送成功后再提示接收的手机号
...@@ -77,6 +77,7 @@ class VerifyIdentityActivity : BaseActivity<ActivityVerifyIdentifyBinding>() { ...@@ -77,6 +77,7 @@ class VerifyIdentityActivity : BaseActivity<ActivityVerifyIdentifyBinding>() {
*/ */
private fun checkSmsCode() { private fun checkSmsCode() {
// todo 校验成功后,进入微信授权 // todo 校验成功后,进入微信授权
XPageManager.push(XRouterPathConstants.WECHAT_AUTH, null)
} }
......
package com.yidian.shenghuoquan.newscontent.wallet.ui package com.yidian.shenghuoquan.newscontent.wallet.ui
import android.os.Bundle
import android.widget.Toast
import com.umeng.socialize.bean.SHARE_MEDIA
import com.yidian.common.XRouterPathConstants import com.yidian.common.XRouterPathConstants
import com.yidian.common.YdBaseApplication
import com.yidian.common.base.BaseActivity import com.yidian.common.base.BaseActivity
import com.yidian.common.extensions.clickAntiShake
import com.yidian.common.extensions.initTitleBar
import com.yidian.common.utils.AuthUtils
import com.yidian.common.utils.CheckApkExistUtil
import com.yidian.news.util.LogUtils
import com.yidian.shenghuoquan.newscontent.databinding.ActivityWechatAuthBinding import com.yidian.shenghuoquan.newscontent.databinding.ActivityWechatAuthBinding
import com.yidian.utils.ToastUtil
import com.yidian.xpage.XPageManager
/** /**
* 微信授权 * 微信授权
*/ */
class WeChatAuthActivity: BaseActivity<ActivityWechatAuthBinding>() { class WeChatAuthActivity : BaseActivity<ActivityWechatAuthBinding>() {
override fun createViewBinding(): ActivityWechatAuthBinding { override fun createViewBinding(): ActivityWechatAuthBinding {
return ActivityWechatAuthBinding.inflate(layoutInflater) return ActivityWechatAuthBinding.inflate(layoutInflater)
...@@ -16,4 +27,44 @@ class WeChatAuthActivity: BaseActivity<ActivityWechatAuthBinding>() { ...@@ -16,4 +27,44 @@ class WeChatAuthActivity: BaseActivity<ActivityWechatAuthBinding>() {
override fun getXPageName(): String { override fun getXPageName(): String {
return XRouterPathConstants.WECHAT_AUTH return XRouterPathConstants.WECHAT_AUTH
} }
override fun init(savedInstanceState: Bundle?) {
super.init(savedInstanceState)
initView()
initClick()
}
private fun initView() {
initTitleBar(viewBind.include.toolbar, viewBind.include.tvTitle, "")
}
private fun initClick() {
// 重新获取验证码
viewBind.tvToAuth.clickAntiShake {
requestWeChatAuth()
}
}
private fun requestWeChatAuth() {
if (!CheckApkExistUtil.checkApkExist(YdBaseApplication.context, CheckApkExistUtil.weChatPkgName)) {
Toast.makeText(YdBaseApplication.context, "授权失败,未安装【微信】", Toast.LENGTH_SHORT).show()
return
}
val authMap = AuthUtils.toAuthorize(this, SHARE_MEDIA.WEIXIN)
val accessToken = authMap["accessToken"]
LogUtils.e("auth", "微信授权结果$accessToken")
ToastUtil.showToast(this, "微信授权结果$accessToken")
if (accessToken.isNullOrBlank()) {
ToastUtil.showToast(this, "微信授权失败")
} else {
toWithdraw(accessToken)
}
}
private fun toWithdraw(accessToken: String) {
val hashMap = HashMap<String, String?>()
hashMap["accessToken"] = accessToken
XPageManager.push(XRouterPathConstants.WITHDRAW, hashMap)
}
} }
...@@ -4,8 +4,10 @@ import android.content.Context ...@@ -4,8 +4,10 @@ import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.view.View import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import com.yidian.common.XRouterPathConstants
import com.yidian.shenghuoquan.newscontent.R import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.databinding.ViewMerchantAssetBinding import com.yidian.shenghuoquan.newscontent.databinding.ViewMerchantAssetBinding
import com.yidian.xpage.XPageManager
/** /**
* author: yinjiacheng * author: yinjiacheng
...@@ -13,37 +15,53 @@ import com.yidian.shenghuoquan.newscontent.databinding.ViewMerchantAssetBinding ...@@ -13,37 +15,53 @@ import com.yidian.shenghuoquan.newscontent.databinding.ViewMerchantAssetBinding
* description: 商户资产 * description: 商户资产
*/ */
class MerchantAssetView @JvmOverloads constructor( class MerchantAssetView @JvmOverloads constructor(
context: Context, context: Context,
attrs: AttributeSet? = null, attrs: AttributeSet? = null,
defStyle: Int = 0 defStyle: Int = 0
) : ConstraintLayout(context, attrs, defStyle), View.OnClickListener { ) : ConstraintLayout(context, attrs, defStyle), View.OnClickListener {
private val viewBinding = ViewMerchantAssetBinding.bind( private var callback: OnClickWalletCallback? = null
View.inflate(
getContext(), private val viewBinding = ViewMerchantAssetBinding.bind(
R.layout.view_merchant_asset, View.inflate(
this getContext(),
) R.layout.view_merchant_asset,
this
) )
)
init { init {
viewBinding.tvWalletBalance.setOnClickListener(this) viewBinding.tvWalletBalance.setOnClickListener(this)
} viewBinding.tvToWalletBalance.setOnClickListener(this)
}
/** /**
* 数据填充 * 数据填充
* @param income 当月收入 * @param income 当月收入
* @param balance 钱包yue * @param balance 钱包yue
*/ */
fun setMerchantAssetData(income: String, balance: String) { fun setMerchantAssetData(income: String, balance: String) {
viewBinding.tvMonthlyIncome.text = income viewBinding.tvMonthlyIncome.text = income
viewBinding.tvWalletBalance.text = balance viewBinding.tvWalletBalance.text = balance
} }
override fun onClick(v: View?) { override fun onClick(v: View?) {
if (v?.id == R.id.tv_wallet_balance) { when (v?.id) {
// TODO: 6/8/21 跳转钱包 R.id.tv_wallet_balance,
} R.id.tv_to_wallet_balance -> {
// 进入钱包
callback?.toMyWallet(viewBinding.tvWalletBalance.text.toString())
XPageManager.push(XRouterPathConstants.MY_WALLET, null)
}
} }
}
fun setOnClickWalletCallback(callback: OnClickWalletCallback) {
this.callback = callback
}
interface OnClickWalletCallback {
fun toMyWallet(balance: String)
}
} }
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
</androidx.constraintlayout.widget.ConstraintLayout> <include
\ No newline at end of file android:id="@+id/include"
layout="@layout/layout_common_toolbar" />
<ImageView
android:layout_width="@dimen/dp100"
android:layout_height="@dimen/dp100"
android:layout_gravity="center"
android:layout_marginTop="@dimen/dp70"
android:src="@drawable/icon_wechat_auth" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/dp40"
android:text="微信授权"
android:textColor="@color/color_333333"
android:textSize="24sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/dp5"
android:text="授权成功后即可提现至微信钱包"
android:textColor="@color/color_666666"
android:textSize="@dimen/sp16" />
<TextView
android:id="@+id/tv_to_auth"
android:layout_width="@dimen/dp160"
android:layout_height="44dp"
android:layout_gravity="center"
android:layout_marginTop="40dp"
android:background="@drawable/account_btn_gradient_bg"
android:gravity="center"
android:text="去授权"
android:textColor="@color/white"
android:textSize="18sp" />
</LinearLayout>
\ No newline at end of file
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
app:layout_constraintTop_toBottomOf="@id/tv_monthly_income" /> app:layout_constraintTop_toBottomOf="@id/tv_monthly_income" />
<TextView <TextView
android:id="@+id/tv_to_wallet_balance"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="2dp" android:layout_marginTop="2dp"
......
...@@ -40,6 +40,58 @@ ...@@ -40,6 +40,58 @@
tools:targetApi="n"> tools:targetApi="n">
<!-- 以下为友盟分享基本配置信息 start-->
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${file_provider}"
android:exported="false"
android:grantUriPermissions="true"
tools:replace="android:authorities">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"
tools:replace="android:resource" />
</provider>
<!--微信分享/登录-->
<activity
android:name=".wxapi.WXEntryActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent101923771" />
</intent-filter>
</activity>
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="com.umeng.socialize.media.WBShareCallBackActivity"
android:configChanges="keyboardHidden|orientation"
android:exported="false"
android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<activity
android:name="com.sina.weibo.sdk.web.WeiboSdkWebActivity"
android:configChanges="keyboardHidden|orientation"
android:exported="false"
android:windowSoftInputMode="adjustResize" />
<!-- 以上为友盟分享基本配置信息 end-->
<uses-library <uses-library
android:name="org.apache.http.legacy" android:name="org.apache.http.legacy"
......
package com.shenghuoquan.business.debug.wxapi
import com.umeng.socialize.weixin.view.WXCallbackActivity
class WXEntryActivity : WXCallbackActivity() {
}
package com.shenghuoquan.business.wxapi
import com.umeng.socialize.weixin.view.WXCallbackActivity
class WXEntryActivity : WXCallbackActivity() {
}
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