170 lines
3.6 KiB
JavaScript
170 lines
3.6 KiB
JavaScript
import BasePlatform from './BasePlatform';
|
||
|
||
import {
|
||
parseQueryString
|
||
} from '@/common/util';
|
||
|
||
|
||
|
||
class IOSPlatform extends BasePlatform {
|
||
constructor() {
|
||
super();
|
||
this.code = 'IOS';
|
||
this.env = 'ios';
|
||
|
||
}
|
||
getPayData(url, data) {
|
||
data['quitUrl'] = escape(window.location.href);
|
||
data['returnUrl'] = escape(window.location.href);
|
||
console.log('处理数据', data);
|
||
return data;
|
||
}
|
||
pay({
|
||
data
|
||
}, event) {
|
||
console.log('支付1111');
|
||
|
||
return new Promise((resolve) => {
|
||
console.log(data);
|
||
// 检查是否已存在同ID的表单,如果存在则先删除
|
||
const existingForm = document.getElementById('alipaysubmit');
|
||
if (existingForm) {
|
||
existingForm.parentNode.removeChild(existingForm);
|
||
}
|
||
|
||
// 创建一个临时div元素
|
||
const tempDiv = document.createElement('div');
|
||
// 将data作为HTML插入到div中(假设data是表单的HTML字符串)
|
||
tempDiv.innerHTML = data;
|
||
// 将表单添加到body中
|
||
document.body.appendChild(tempDiv.firstChild);
|
||
// 获取表单并提交
|
||
const form = document.getElementById('alipaysubmit');
|
||
if (form) {
|
||
form.submit();
|
||
resolve({
|
||
success: true
|
||
});
|
||
} else {
|
||
resolve({
|
||
success: false,
|
||
message: '表单创建失败'
|
||
});
|
||
}
|
||
});
|
||
}
|
||
|
||
share({
|
||
title,
|
||
desc,
|
||
image,
|
||
url
|
||
}) {
|
||
console.log(`H5分享:${title} - ${desc}`);
|
||
// 调用浏览器原生分享(如果可用)
|
||
if (navigator.share) {
|
||
return navigator.share({
|
||
title,
|
||
text: desc,
|
||
url
|
||
});
|
||
}
|
||
// 降级方案
|
||
alert(`请手动分享:${url}`);
|
||
}
|
||
|
||
/**
|
||
* 选择地址
|
||
* @returns
|
||
*/
|
||
chooseAddress() {
|
||
return new Promise((resolve, reject) => {
|
||
uni.navigateTo({
|
||
url: '/pages/other/choose_address',
|
||
events: {
|
||
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
|
||
selectAddress: function(data) {
|
||
console.log(data, {
|
||
userName: data.address.receiver_name,
|
||
telNumber: data.address.receiver_phone,
|
||
detailed_address: data.address.detailed_address
|
||
})
|
||
resolve({
|
||
userName: data.address.receiver_name,
|
||
telNumber: data.address.receiver_phone,
|
||
detailed_address: data.address.detailed_address
|
||
});
|
||
},
|
||
someEvent: function(data) {
|
||
console.log(data)
|
||
}
|
||
|
||
},
|
||
success: function(res) {
|
||
// 通过eventChannel向被打开页面传送数据
|
||
res.eventChannel.emit('acceptDataFromOpenerPage', {
|
||
data: 'data from starter page'
|
||
})
|
||
}
|
||
})
|
||
});
|
||
}
|
||
downloadFile(url) {
|
||
return new Promise((resolve, reject) => {
|
||
resolve({
|
||
success: true
|
||
});
|
||
});
|
||
}
|
||
AppLaunch(options) {
|
||
console.log("AppLaunch", options);
|
||
|
||
}
|
||
getOrderNo(event) {
|
||
return new Promise((resolve, reject) => {
|
||
resolve(null);
|
||
});
|
||
}
|
||
|
||
/**
|
||
* 重写获取用户中心菜单列表,处理H5特有的菜单需求
|
||
* @returns {Array} 菜单项数组
|
||
*/
|
||
getUserMenuList() {
|
||
// 获取基础菜单列表
|
||
const baseMenuList = super.getUserMenuList();
|
||
|
||
// H5环境下可能需要修改某些菜单项的行为
|
||
return baseMenuList.map(item => {
|
||
// 示例:在H5环境下可能需要特殊处理某些菜单项
|
||
if (item.id === 6) { // 加入福利群菜单
|
||
return {
|
||
...item,
|
||
// 重新绑定处理函数,可能需要增加H5特有的逻辑
|
||
handler: (menuItem, context) => {
|
||
this.handleJoinGroup(menuItem, context);
|
||
// 在H5环境下可能需要额外的处理,比如尝试复制群号等
|
||
}
|
||
};
|
||
}
|
||
return item;
|
||
});
|
||
}
|
||
|
||
/**
|
||
* 开启调试
|
||
*/
|
||
startDeb() {
|
||
|
||
}
|
||
/**
|
||
* 关闭调试
|
||
*/
|
||
closeDeb() {
|
||
|
||
}
|
||
getVersion() {
|
||
return '1.0.0';
|
||
}
|
||
}
|
||
export default H5Platform; |