当项目封装成APP需要拉起微信登录或者微信分享的时候,必须去调用安卓的方法才可以实现需求:
一:登录
let data_1={}
window.loginResult = async function (data) {
//此方法是为了安卓那边可以调取到,data就是安卓传递的参数,从参数中取需要的,传递给后台
const data_ = JSON.parse(data)
data_1.unionid = data_.resource.unionid;
data_1.screen_name = data_.resource.screen_name;
data_1.profile_image_url = data_.resource.profile_image_url;
const result = await users.weChartUnionid(data_1);
if (result.code == 1) {
// if (result.data.status == 1) { //请求成功且已经绑定成功的情况,存储用户名、密码为了后续token用。同时跳转到首页去
login(result.data.tel, result.data.pwd)
window.location = '/home'
}
else if(result.code==2){
let url = `http://www.xcy.ac.cn/WxZhuCe?unionid=${data_1.unionid}&name=${data_1.screen_name}&img=${data_1.profile_image_url}`
window.location = url
return;
}
};
二:分享
分享和登录同理,根据安卓需要的参数传参就行:
<div className={style.copy_btn}
onClick={()=>{
this.sub(
this.state.type != "2" ? SpecialDetails_src.pd_name : SpecialDetails_src.Set_meal,
'',
SpecialDetails_src.pd_pic?APIHost+SpecialDetails_src.pd_pic[0]:'',
this.state.url
)
}}>
<img src={wx} alt=""/>
<span>去微信分享</span>
</div>
定义点击事件,触发sub函数
sub(name,describe,img,url){
var u = navigator.userAgent,app = navigator.appVersion
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1; //android终端或者uc浏览器
if (isAndroid) {
window.android.shareWeChatWithWeb(name,describe,img,url); //这个是调安卓那边的方法 然后把name,describe img url 传给他 他可以拉起微信并生成分享链接
} else {
return;
}
}