兼容h5
This commit is contained in:
parent
8c59a5d19e
commit
5cb1218193
|
|
@ -3,44 +3,58 @@
|
|||
* 定义所有端必须实现的方法
|
||||
*/
|
||||
class BasePlatform {
|
||||
constructor() {
|
||||
if (new.target === BasePlatform) {
|
||||
throw new Error('BasePlatform 是抽象类,不能直接实例化');
|
||||
}
|
||||
this.code = ''; // 平台代码(WEB/MP/APP)
|
||||
this.env = ''; // 运行环境标识
|
||||
}
|
||||
|
||||
getPayData(url,data) {
|
||||
throw new Error('子类必须实现 getPayData 方法');
|
||||
constructor() {
|
||||
if (new.target === BasePlatform) {
|
||||
throw new Error('BasePlatform 是抽象类,不能直接实例化');
|
||||
}
|
||||
this.code = ''; // 平台代码(WEB/MP/APP)
|
||||
this.env = ''; // 运行环境标识
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付方法(子类必须实现)
|
||||
* @param {number} amount - 支付金额(分)
|
||||
* @param {string} orderId - 订单号
|
||||
*/
|
||||
pay({ data }) {
|
||||
throw new Error('子类必须实现 pay 方法');
|
||||
}
|
||||
getPayData(url, data) {
|
||||
throw new Error('子类必须实现 getPayData 方法');
|
||||
}
|
||||
/**
|
||||
*
|
||||
*/
|
||||
chooseAddress() {
|
||||
return new Promise((resolve, reject) => {
|
||||
throw new Error('子类必须实现 chooseAddress 方法');
|
||||
});
|
||||
}
|
||||
/**
|
||||
* 支付方法(子类必须实现)
|
||||
* @param {number} amount - 支付金额(分)
|
||||
* @param {string} orderId - 订单号
|
||||
*/
|
||||
pay({
|
||||
data
|
||||
}) {
|
||||
throw new Error('子类必须实现 pay 方法');
|
||||
}
|
||||
|
||||
/**
|
||||
* 分享方法(子类必须实现)
|
||||
* @param {object} params - 分享参数 { title, desc, image, url }
|
||||
*/
|
||||
share({ title, desc, link, image }) {
|
||||
throw new Error('子类必须实现 share 方法');
|
||||
}
|
||||
/**
|
||||
* 分享方法(子类必须实现)
|
||||
* @param {object} params - 分享参数 { title, desc, image, url }
|
||||
*/
|
||||
share({
|
||||
title,
|
||||
desc,
|
||||
link,
|
||||
image
|
||||
}) {
|
||||
throw new Error('子类必须实现 share 方法');
|
||||
}
|
||||
|
||||
/**
|
||||
* 通用方法(所有端共用)
|
||||
*/
|
||||
getPlatformInfo() {
|
||||
return {
|
||||
code: this.code,
|
||||
env: this.env,
|
||||
ua: navigator?.userAgent || ''
|
||||
};
|
||||
}
|
||||
/**
|
||||
* 通用方法(所有端共用)
|
||||
*/
|
||||
getPlatformInfo() {
|
||||
return {
|
||||
code: this.code,
|
||||
env: this.env,
|
||||
ua: navigator?.userAgent || ''
|
||||
};
|
||||
}
|
||||
}
|
||||
export default BasePlatform;
|
||||
|
|
@ -7,15 +7,15 @@ class H5Platform extends BasePlatform {
|
|||
this.env = 'h5';
|
||||
}
|
||||
getPayData(url, data) {
|
||||
|
||||
data['quitUrl']=escape(window.location.href);
|
||||
data['returnUrl']=escape(window.location.href);
|
||||
console.log('处理数据',data);
|
||||
|
||||
data['quitUrl'] = escape(window.location.href);
|
||||
data['returnUrl'] = escape(window.location.href);
|
||||
console.log('处理数据', data);
|
||||
return data;
|
||||
}
|
||||
pay({ data }) {
|
||||
console.log('支付1111');
|
||||
|
||||
|
||||
return new Promise((resolve) => {
|
||||
console.log(data);
|
||||
// 创建一个临时div元素
|
||||
|
|
@ -44,5 +44,31 @@ class H5Platform extends BasePlatform {
|
|||
// 降级方案
|
||||
alert(`请手动分享:${url}`);
|
||||
}
|
||||
|
||||
/**
|
||||
* 选择地址
|
||||
* @returns
|
||||
*/
|
||||
chooseAddress() {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.navigateTo({
|
||||
url: '/pages/other/choose_address',
|
||||
events: {
|
||||
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
|
||||
acceptDataFromOpenedPage: function (data) {
|
||||
console.log(data)
|
||||
},
|
||||
someEvent: function (data) {
|
||||
console.log(data)
|
||||
}
|
||||
|
||||
},
|
||||
success: function (res) {
|
||||
// 通过eventChannel向被打开页面传送数据
|
||||
res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'data from starter page' })
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
}
|
||||
export default H5Platform;
|
||||
|
|
@ -11,7 +11,9 @@ class MiniProgramPlatform extends BasePlatform {
|
|||
getPayData(url, data) {
|
||||
return data;
|
||||
}
|
||||
pay({ data }) {
|
||||
pay({
|
||||
data
|
||||
}) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let provider = "weixin";
|
||||
uni.requestPayment({
|
||||
|
|
@ -26,19 +28,20 @@ class MiniProgramPlatform extends BasePlatform {
|
|||
complete: res => {
|
||||
console.log('complete (res)', res)
|
||||
if (res.errMsg == 'requestPayment:fail cancel') {
|
||||
this.toast({
|
||||
uni.showToast({
|
||||
title: '取消支付',
|
||||
icon: 'none',
|
||||
duration: 500,
|
||||
success: () => {
|
||||
/* 取消订单 */
|
||||
resolve('cancel')
|
||||
}
|
||||
})
|
||||
|
||||
resolve('cancel')
|
||||
|
||||
}
|
||||
if (res.errMsg == 'requestPayment:ok') {
|
||||
this.toast({
|
||||
uni.showToast({
|
||||
title: '支付成功',
|
||||
icon: 'success',
|
||||
duration: 500,
|
||||
|
|
@ -52,13 +55,38 @@ class MiniProgramPlatform extends BasePlatform {
|
|||
})
|
||||
}
|
||||
|
||||
share({ title, desc, image, url }) {
|
||||
share({
|
||||
title,
|
||||
desc,
|
||||
image,
|
||||
url
|
||||
}) {
|
||||
wx.showShareMenu({
|
||||
withShareTicket: true,
|
||||
menus: ['shareAppMessage', 'shareTimeline']
|
||||
});
|
||||
// 监听用户点击分享按钮
|
||||
wx.onShareAppMessage(() => ({ title, imageUrl: image }));
|
||||
wx.onShareAppMessage(() => ({
|
||||
title,
|
||||
imageUrl: image
|
||||
}));
|
||||
}
|
||||
/**
|
||||
* 选择地址
|
||||
* @returns
|
||||
*/
|
||||
chooseAddress() {
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.chooseAddress({
|
||||
success: res => {
|
||||
res.detailed_address = res.provinceName + res.cityName + res.countyName + res.detailInfo;
|
||||
resolve(res)
|
||||
},
|
||||
fail: err => {
|
||||
reject(err)
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
export default MiniProgramPlatform;
|
||||
|
|
@ -17,17 +17,17 @@
|
|||
onLoad() {
|
||||
this.load();
|
||||
// 在test.vue页面,向起始页通过事件传递数据
|
||||
// const eventChannel = this.getOpenerEventChannel();
|
||||
// eventChannel.emit('acceptDataFromOpenedPage', {
|
||||
// data: 'data from test page'
|
||||
// });
|
||||
// eventChannel.emit('someEvent', {
|
||||
// data: 'data from test page for someEvent'
|
||||
// });
|
||||
const eventChannel = this.getOpenerEventChannel();
|
||||
eventChannel.emit('acceptDataFromOpenedPage', {
|
||||
data: 'data from test page'
|
||||
});
|
||||
eventChannel.emit('someEvent', {
|
||||
data: 'data from test page for someEvent'
|
||||
});
|
||||
// // 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
|
||||
// eventChannel.on('acceptDataFromOpenerPage', function(data) {
|
||||
// console.log(data)
|
||||
// })
|
||||
eventChannel.on('acceptDataFromOpenerPage', function(data) {
|
||||
console.log(data)
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
async load() {
|
||||
|
|
|
|||
|
|
@ -244,14 +244,11 @@
|
|||
<view v-else class="add-info">
|
||||
<view class="name-phone">
|
||||
<view>{{ addData.userName }}</view>
|
||||
|
||||
<view class="phone">{{ addData.telNumber }}</view>
|
||||
</view>
|
||||
|
||||
<view class="add-text">
|
||||
{{ addData.provinceName }}-{{ addData.cityName }}-{{
|
||||
addData.countyName
|
||||
}}-{{ addData.detailInfo }}
|
||||
{{ addData.detailed_address }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="icon">
|
||||
|
|
@ -400,7 +397,6 @@ export default {
|
|||
// }
|
||||
],
|
||||
subTabCur: 0,
|
||||
addData: '',
|
||||
listData: [],
|
||||
total: 0,
|
||||
handelList: [],
|
||||
|
|
@ -546,87 +542,12 @@ export default {
|
|||
|
||||
chooseAdd() {
|
||||
this.canReload = false
|
||||
|
||||
var that = this;
|
||||
// #ifdef H5
|
||||
this.req({
|
||||
url: 'getAccessTokenOffiaccountSign',
|
||||
data: {
|
||||
// recovery_info: JSON.stringify(data)
|
||||
url: location.href.split('#')[0]
|
||||
},
|
||||
success: res => {
|
||||
console.log(res);
|
||||
if (res.status == 1) {
|
||||
var _data = res.data;
|
||||
wx.config({
|
||||
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
|
||||
appId: _data.appId,
|
||||
timestamp: _data.timestamp,
|
||||
nonceStr: _data.noncestr,
|
||||
signature: _data.signature,
|
||||
jsApiList: [
|
||||
'checkJsApi',
|
||||
'openAddress',
|
||||
|
||||
]
|
||||
});
|
||||
wx.ready(function () {
|
||||
wx.checkJsApi({
|
||||
jsApiList: [
|
||||
'openAddress',
|
||||
],
|
||||
success: function (res) {
|
||||
// alert(res);
|
||||
// console.log(res);
|
||||
wx.openAddress({
|
||||
success: function (res) {
|
||||
console.log(res);
|
||||
that.addData = res;
|
||||
// var userName = res.userName; // 收货人姓名
|
||||
// var postalCode = res.postalCode; // 邮编
|
||||
// var provinceName = res
|
||||
// .provinceName; // 国标收货地址第一级地址(省)
|
||||
// var cityName = res.cityName; // 国标收货地址第二级地址(市)
|
||||
// var countryName = res
|
||||
// .countryName; // 国标收货地址第三级地址(国家)
|
||||
// var detailInfo = res.detailInfo; // 详细收货地址信息
|
||||
// var nationalCode = res.nationalCode; // 收货地址国家码
|
||||
// var telNumber = res.telNumber; // 收货人手机号码
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
wx.error(function (res) {
|
||||
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
|
||||
console.log("出现错误", res);
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
// #endif
|
||||
|
||||
// #ifdef MP-WEIXIN
|
||||
uni.chooseAddress({
|
||||
success: res => {
|
||||
console.log(res)
|
||||
this.addData = res
|
||||
},
|
||||
fail: error => {
|
||||
console.log(error)
|
||||
},
|
||||
complete: res => {
|
||||
// console.log(123);
|
||||
setTimeout(() => {
|
||||
this.canReload = true
|
||||
}, 500)
|
||||
}
|
||||
})
|
||||
// #endif
|
||||
|
||||
this.$platform.chooseAddress().then(res => {
|
||||
console.log(res);
|
||||
|
||||
this.addData = res
|
||||
this.canReload = true;
|
||||
});
|
||||
},
|
||||
|
||||
submitLock() {
|
||||
|
|
@ -693,13 +614,7 @@ export default {
|
|||
type: this.subTab[this.subTabCur].id,
|
||||
name: this.addData.userName,
|
||||
mobile: this.addData.telNumber,
|
||||
address: this.addData.provinceName +
|
||||
this.addData.cityName +
|
||||
this.addData.countyName +
|
||||
this.addData.detailInfo,
|
||||
// name: '张三',
|
||||
// mobile: '13355852333',
|
||||
// address: '收货地址收货地址',
|
||||
address: this.addData.detailed_address,
|
||||
message: this.remark
|
||||
// ad_id: uni.getStorageSync('_ad_id')
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user