Commit 108e882d authored by shiyl's avatar shiyl

add 微信授权页面搭建

parent fa70e6cf
......@@ -3,63 +3,6 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.yidian.common">
<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>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
......@@ -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.widget.CommonTopBarView
import com.yidian.shenghuoquan.newscontent.widget.LifeAccountLabelView
import com.yidian.shenghuoquan.newscontent.widget.MerchantAssetView
import com.yidian.utils.ToastUtil
import com.yidian.xarc.xevent.XBaseEvent
import com.yidian.xarc.xevent.XEventManager
......@@ -99,6 +100,14 @@ class MerchantCenterActivity : BaseActivity<ActivityMerchantCenterBinding>(),
private fun initListener() {
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() {
......
......@@ -38,7 +38,9 @@ class MyWalletActivity : BaseActivity<ActivityMyWalletBinding>() {
}
// todo 提现(仅管理员可以发起提现)
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
import com.yidian.shenghuoquan.newscontent.databinding.ActivityVerifyIdentifyBinding
import com.yidian.shenghuoquan.newscontent.utils.CountDownTimerUtils
import com.yidian.shenghuoquan.newscontent.utils.TextWatcherAdapter
import com.yidian.xpage.XPageManager
/**
* 钱包主人验证身份
......@@ -34,7 +35,6 @@ class VerifyIdentityActivity : BaseActivity<ActivityVerifyIdentifyBinding>() {
requestSmsCode()
}
@SuppressLint("SetTextI18n")
private fun initView() {
initTitleBar(viewBind.include.toolbar, viewBind.include.tvTitle, "")
// 默认显示空,等发送成功后再提示接收的手机号
......@@ -77,6 +77,7 @@ class VerifyIdentityActivity : BaseActivity<ActivityVerifyIdentifyBinding>() {
*/
private fun checkSmsCode() {
// todo 校验成功后,进入微信授权
XPageManager.push(XRouterPathConstants.WECHAT_AUTH, null)
}
......
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.YdBaseApplication
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.utils.ToastUtil
import com.yidian.xpage.XPageManager
/**
* 微信授权
*/
class WeChatAuthActivity: BaseActivity<ActivityWechatAuthBinding>() {
class WeChatAuthActivity : BaseActivity<ActivityWechatAuthBinding>() {
override fun createViewBinding(): ActivityWechatAuthBinding {
return ActivityWechatAuthBinding.inflate(layoutInflater)
......@@ -16,4 +27,44 @@ class WeChatAuthActivity: BaseActivity<ActivityWechatAuthBinding>() {
override fun getXPageName(): String {
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
import android.util.AttributeSet
import android.view.View
import androidx.constraintlayout.widget.ConstraintLayout
import com.yidian.common.XRouterPathConstants
import com.yidian.shenghuoquan.newscontent.R
import com.yidian.shenghuoquan.newscontent.databinding.ViewMerchantAssetBinding
import com.yidian.xpage.XPageManager
/**
* author: yinjiacheng
......@@ -13,37 +15,53 @@ import com.yidian.shenghuoquan.newscontent.databinding.ViewMerchantAssetBinding
* description: 商户资产
*/
class MerchantAssetView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyle: Int = 0
context: Context,
attrs: AttributeSet? = null,
defStyle: Int = 0
) : ConstraintLayout(context, attrs, defStyle), View.OnClickListener {
private val viewBinding = ViewMerchantAssetBinding.bind(
View.inflate(
getContext(),
R.layout.view_merchant_asset,
this
)
private var callback: OnClickWalletCallback? = null
private val viewBinding = ViewMerchantAssetBinding.bind(
View.inflate(
getContext(),
R.layout.view_merchant_asset,
this
)
)
init {
viewBinding.tvWalletBalance.setOnClickListener(this)
}
init {
viewBinding.tvWalletBalance.setOnClickListener(this)
viewBinding.tvToWalletBalance.setOnClickListener(this)
}
/**
* 数据填充
* @param income 当月收入
* @param balance 钱包yue
*/
fun setMerchantAssetData(income: String, balance: String) {
viewBinding.tvMonthlyIncome.text = income
viewBinding.tvWalletBalance.text = balance
}
/**
* 数据填充
* @param income 当月收入
* @param balance 钱包yue
*/
fun setMerchantAssetData(income: String, balance: String) {
viewBinding.tvMonthlyIncome.text = income
viewBinding.tvWalletBalance.text = balance
}
override fun onClick(v: View?) {
if (v?.id == R.id.tv_wallet_balance) {
// TODO: 6/8/21 跳转钱包
}
override fun onClick(v: View?) {
when (v?.id) {
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"?>
<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_height="match_parent">
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<include
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 @@
app:layout_constraintTop_toBottomOf="@id/tv_monthly_income" />
<TextView
android:id="@+id/tv_to_wallet_balance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
......
......@@ -40,6 +40,58 @@
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
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