yfs/common/platform/IOSPlatform.js
2025-05-21 20:11:42 +08:00

170 lines
3.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;