当前位置: 首页 > wzjs >正文

外汇交易网站开发有没有做文创的网站

外汇交易网站开发,有没有做文创的网站,wordpress程序下载,40万用户自助建站需求:点击按钮后,将设定的一些信息插入到系统日历的日程安排中。 调研过程 先google了一段时间,了解该需求大概的实现方式。可以创建日历文件,在点击的时候下载该日历文件,看起来还比较复杂,并且由于不具…

需求:点击按钮后,将设定的一些信息插入到系统日历的日程安排中。

调研过程

  1. 先google了一段时间,了解该需求大概的实现方式。可以创建日历文件,在点击的时候下载该日历文件,看起来还比较复杂,并且由于不具备系统日历相关的知识,担心纯手写造成的bug难以解决,所以放弃了。
  2. 在npm上搜索了相关的插件,发现了add-to-calendar-button,看文档发现适配了很多平台上的日历,但是真正使用后发现无法满足需求,这个插件不支持配置日程中url。并且在第三方软件中也出现了打不开的bug,所以放弃了这个插件。但是在调试的过程中发现在android设备上或ios非safari的浏览器是无法直接插入系统日历的,而是下载日历ics文件自行导入。
  3. 既然知道了不同系统以及浏览器中的效果都不一样,那就只能想一个满足需求的同时还提高用户体验的办法了。我的项目是海外的,所以用safari和google浏览器的用户居多,并且也了解到需求方主要是要用ios日历提醒。
  4. 主动和产品沟通,ios用户保障在safari浏览器中插入系统日历,除开safari以外的用户(包含android/其它浏览器/第三方app内置浏览器)点击按钮后跳转google日历。
  5. 又去npm找生成ics文件的插件,发现了ics.js,配置项挺多的也满足需求。google日历官方给出的方式需要注册appKey,但是ai告诉我有另一种方式:跳转url并传参,但是google日历找不到参数文档,不过主要的信息也都可以写入。

源代码

封装公共方法,点击按钮后调用addCalendar

import moment from 'moment';
import { createEvent } from 'ics';
import { getBrowser } from '@/utils/common';/*** 添加谷歌日历* @param {Object} event - 日历事件对象
*/
const addGoogleCalendar = (event) => {const startDate = moment(event.start).format('YYYYMMDD[T]HHmmss');const endDate = moment(event.end).format('YYYYMMDD[T]HHmmss');const params = new URLSearchParams({action: 'TEMPLATE',text: event.name,dates: `${startDate}/${endDate}`,details: `${event.url}\n${event.description}`,ctz: event.timezone || 'Asia/Tokyo'});const googleUrl = `https://calendar.google.com/calendar/render?${params.toString()}`;console.log(decodeURIComponent(googleUrl));window.open(googleUrl, '_blank');
}/*** 为 Safari 用户创建并下载 ICS 文件* @param {Object} event - 日历事件对象
*/
const createICSEvent = (event) => {const filename = `${event.name}.ics`;const startMoment = moment.utc(event.start).local();const endMoment = moment.utc(event.end).local();const icsEvent = {start: [startMoment.year(),startMoment.month()+1,startMoment.date(),startMoment.hour(),startMoment.minute()],end: [endMoment.year(),endMoment.month()+1,endMoment.date(),endMoment.hour(),endMoment.minute()],title: event.name,description: `${event.url}\n${event.description}`,url: event.url,alarms: [{action: 'display',description: 'Reminder',trigger: { ...event.reminder, before: true }}]};createEvent(icsEvent, (error, value) => {if (error) {console.log(error);return;}if (!value) return;const file = new File([value], filename, { type: 'text/calendar' });const link = document.createElement('a');const url = URL.createObjectURL(file);link.href = url;link.download = filename;document.body.appendChild(link);link.click();document.body.removeChild(link);URL.revokeObjectURL(url);});
}/*** 添加日历* @param {Object} params - 日历参数* @param {string} params.name - 日历事件名称* @param {number} params.start - 日历事件开始时间* @param {number} params.end - 日历事件结束时间* @param {string} params.url - 日历事件 URL* @param {string} params.description - 日历事件描述(备注)
*/
export const addCalendar = (params) => {const finalParams = {...params,timezone: 'Asia/Tokyo',reminder: { hours: 1 }}const { isSafari } = getBrowser();if (isSafari) {createICSEvent(finalParams);} else {addGoogleCalendar(finalParams);}
}

相关文档

  1. stack overflow上关于google日历参数的回答
  2. ics.js
  3. add-to-calendar-button

文章转载自:

http://EacG2CX9.pzjrm.cn
http://qp5YjPWt.pzjrm.cn
http://mQWA9fOB.pzjrm.cn
http://FjUUCV4y.pzjrm.cn
http://7iQHrIDL.pzjrm.cn
http://NdyQPG5Q.pzjrm.cn
http://gAKMzCO6.pzjrm.cn
http://tIRIn371.pzjrm.cn
http://edWBDvlL.pzjrm.cn
http://vHhxcQkm.pzjrm.cn
http://3OnKovv8.pzjrm.cn
http://XbYDObNO.pzjrm.cn
http://IAM7IbpA.pzjrm.cn
http://nscyrqec.pzjrm.cn
http://LtnHprs5.pzjrm.cn
http://PxGdSGcb.pzjrm.cn
http://vfLoLWf5.pzjrm.cn
http://jLp95TdF.pzjrm.cn
http://KX4oqM32.pzjrm.cn
http://cyJ8FOYc.pzjrm.cn
http://w9Ik4ncW.pzjrm.cn
http://t4c5zv76.pzjrm.cn
http://9b9FB2xz.pzjrm.cn
http://FQP1IQMA.pzjrm.cn
http://pBvZs5F0.pzjrm.cn
http://0RfhoQis.pzjrm.cn
http://OTmf1LmK.pzjrm.cn
http://vPlsXAsZ.pzjrm.cn
http://zExvC4do.pzjrm.cn
http://CrDBtFHO.pzjrm.cn
http://www.dtcms.com/wzjs/617855.html

相关文章:

  • 专做民宿的网站请人做网站要注意什么
  • 深圳网站建设服务中心一级a做爰片免费网站 新闻
  • 免费的建网站软件北京所有做招聘类网站建站公司
  • 兼职做问卷调查的网站万维网网站续费
  • 织梦网站栏目添加外链发布平台大全
  • 在线做头像的网站vi设计经典案例
  • 中学生旅游网站开发的论文怎么写网站建设公司网站模版
  • 湖南营销网站建设网络营销题库案例题
  • 做编程的网站一个月多少钱杭州 高端网站建设
  • 织梦网站添加广告位哈尔滨高端网站建设
  • 网站建设翻译手机网站怎么制作
  • 网站开发外包wordpress语言文件编辑
  • 盐城网站推广电话网络营销具有哪些优势和吸引力
  • 建湖做网站哪家公司好方城网站制作
  • 网站怎么做微信接口福州最新消息
  • 怎么打帮人 做网站开发的广告哪个建站平台较好
  • 类似微薄利网站怎么做云南省公共资源交易中心官网
  • 旺苍网站建设18款未成年软件入口
  • 网站怎么做镜像网站制作
  • 官方网站建设流程及费用爱吧
  • 企业网站备案管理系统常州建设网站
  • 马鞍山市网站建设简洁的企业网站源码
  • 免费的站内推广方式有哪些专业的佛山网站设计
  • 贵阳建设职业技术学院招聘信息网站成都装修公司口碑最好的是哪家
  • 济南市做网站公司python做网页
  • 龙岗永湖网站建设如何打开wordpress
  • 棠下手机网站建设电话电脑课程培训零基础
  • 电子商务的网站案例wordpress修改后台登录
  • 怎么做好营销网站开发营销型网站建设明细
  • 网站开发价目表站长工具seo综合查询下载