关于webapp:蚂蚁数科mPaaS助力吉利打造超级APP共建车企数智化标杆

  车联网、智能座舱、无人驾驶等技术升级,可跨端交互的App成为用户服务最佳切口。近日,蚂蚁数科mPaaS首提面向车企行业解决方案,并已实现商业化输入,吉利极氪是首批重要搭档之一。该产品源于支付宝App 10多年的挪动技术实际和思考,笼罩麻利开发、用户经营、生态凋谢、信息安全、科技翻新五大能力,助力汽车行业翻新减速和转型。 据理解,2022年9月,mPaaS与吉利极氪达成单干,极氪App引入mPaaS挪动端经营组件,实现对车机用户实时触达,辅助业务实现精准营销。同时,借助mPaaS挪动网关,研发效率晋升40%。 「当车企线下业务倒退提速时,对APP云服务敏捷性、安全性、开放性要求更高,mPaaS基于支付宝全方位能力继续降级,能够满足吉利等客户全面应用新形态成熟架构的需要。」蚂蚁团体数字科技事业群高级技术专家唐天示意。 目前,mPaaS已广泛应用于金融、政务民生、互联网、批发等行业,服务客户包含中国农业银行、12306、上海地铁等百余家机构及企业。 

June 2, 2023 · 1 min · jiezi

关于webapp:乐播多屏互动让更多用户享受极致投屏体验

随着社会倒退,科学技术的提高肯定水平上也扭转了人们的生存形式和生产方式,当初人们的生存形式越来越智能化,就以电视为核心的多屏互动,随着智能电视的衰亡,越来越多的人们也利用到了智能电视,智能电视机能够联网应用,与手机共用一个互联网的话也能够实现投屏应用,操作起来是非常简单的,然而当初很多厂家应用到的互联网协议并不相同,所以软件优化的水平并不高,在市场上的多屏互动性能也会存在很大的差别。相比其余电子产品来说,电视电脑手机是人们常生存当中接触最多的电子产品,这些电子产品的性能和性能不同,所以产品特点也会有一些差别。以电视为例,电视的屏幕十分的大,所以体验成果绝对比拟好一些,通过手机就能够实现投屏播放,成果也是十分显著的。当初三大运营商的网络也在一直的降级,缓存在工夫长的状况也在一直的缓解。多屏互动技术的呈现,肯定水平上也将三大平台更好地联合在一起,而且也实现了最佳的用户体验。多屏互动的实现形式次要分为三类,一类是小屏转大屏,也就是将咱们的手机平板上的视频投放在大屏电视上播放,第2类就是大屏转小屏,用户在手机和平板上就能够观看电视上的内容。第3类就是手机遥控器通过手机平板实现电视的各种操控。总体来说成果是十分显著的,肯定水平上也简化了很多简单的过程,而且也放慢了人们的生活节奏。小屏转化为大屏,顾名思义就是将手机的屏幕投屏在电视上,能够实现自动播放下一集的性能。乐播投屏操作起来十分的简略,当然用户也能够在电视上观看各种各样的网络视频,例如一些最新的综艺节目都是能够观看到的,然而想要观看最新节目的话,各大APP也须要用户开明VIP,这样的话才可能取得一些非凡的权限。尽管电视的节目也越来越多样化,然而很多影视资源也并不是特地丰盛,很多人们为了观看最新的影视作品,通常也须要借助乐播投屏多屏互动来进行投屏。这就是小屏转大屏,当然大屏也是能够转换成小屏的,咱们在厨房做饭的时候也是能够通过手机观看电视直播的,这样的话也不会耽搁我任何精彩霎时,智能电视的性能越来越多,当然操作起来十分的简略,通过一步遥控就能够实现重要内容的操作和一些简单的操作,尤其是当初很多遥控器用到了语音技术通过语音就能够关上本人想要的电视节目。尤其是对于一些文字搜寻简单的操作,可能极大地提高效率,也非常适合儿童和老人可见,大屏转小屏或者小屏转大屏的实际操作都是十分杰出的,在设计方面十分的人性化,所以用户体验也相当不错。多屏互动也为宽广用户发明了很多的便当条件,也进步了人们的生活品质。

November 25, 2022 · 1 min · jiezi

关于webapp:什么样的投屏神器比较好

电视投屏神器越来越多样化,每款产品都有它的价格和价值,当然不同的品牌性能价格会存在肯定的区别,用户在抉择之前要有肯定的选择性,而且要做好品牌比照,全面理解对于产品综合应用技能的形式是很重要的,要做好功课千万不能自觉的抉择,否则会影响到本人的观看成果。当初人们的生存程度,生存品质在一直进步,把握更多优质的投屏资源,能够把握更多的欢畅,在抉择产品的过程中要有化本身的有余,依据需要进行抉择是很必要的。乐播投屏科技扭转着人的工作生存形式,能够使人们的工作生存更便捷,当然产品的抉择也是很重要的。当初的投屏神器越来越多样化,品牌在一直的降级,品牌在降级的过程中要重视用户需要,进步本人的品牌自卑感能力强化倒退中的有余,能够使产品更好的走向市场,满足降级需要使品牌可能取得全面的冲破,使用户对品牌及产品产生足够的信赖感,取得优质的倒退,当初的科技网络市场疾速倒退,很多优质的投屏品牌在一直呈现。品牌要在性能性价比这方面疾速优化,要体现出本人特有的价值能力满足更多用户投屏需要,投屏品牌在一直的提高和倒退,科技扭转着品牌的倒退指标,品牌须要重视市场化推广。随着科技现代化的疾速提高,当初的投屏品牌在性能,性价比这方面疾速晋升,满足了更多用户的应用需要,品牌须要全面强化本身倒退中的有余,只有一直的进步品牌深发展的优越性,能力强化本身的倒退模式,打造更加优质的品牌现代化倒退理念,当初的社会环境越来越简单,高科技性能设施越来越多样化,品牌的降级模式还是须要疾速冲破的,打造更加优质的品牌现代化倒退理念是很重要的,生产厂家须要重视市场,能力使产品更好的流入到市场中。无论是手机投屏还是电脑投屏,乐播投屏通过更加优质的设施进行操作,而且要理解更多的投屏软件,在抉择软件的过程中能够对产品综合使用性能有更多的理解,每款产品都有它的特殊化需要,把握更多优质的应用技能是很重要的,关注到产品应用过程中的一些问题,要全面把握更多优质的操作技能,使产品综合应用价值失去更好的晋升。随着产品升级的疾速倒退,当初很多优质的新产品在一直呈现,要把握更加现代化的倒退科技元素。当初市面上呈现的投屏神器越来越多,每个品牌都有它的市场自卑感版,须要重视市场推广的特有价值能力体现出品牌的倒退魅力,在市场倒退中能够取得更多的优,软件综合实用性能在一直晋升,在应用每款软件之前要有肯定的抉择指标,对软件的总体使用性能有更多的关注度,无线投屏和有线投屏会存在肯定的区别,用户在应用的过程中要做好短缺的筹备。

November 24, 2022 · 1 min · jiezi

关于webapp:使用电子采购系统最常见的4个问题

当投资了电子洽购零碎,企业面临的最常见的问题之一是如何充分利用它的后劲。依据企业目前对电子洽购零碎的应用状况,本文总结出4个最常见问题并提出倡议,以帮忙企业取得更多的收益。 将你的数据托付给云端一些企业用户依然习惯在独立的网络地位上治理他们的一些供应商信息、相干的供应商文件和合同,而不是应用他们的电子洽购软件为他们收集和存储在云端。 在本地记录供应商信息也意味着对于供应商的材料很容易被误放或没有以统一的形式记录,因而,当你向以前打过交道的供应商投标时,他们可能反复一些你应该曾经晓得的信息。 在施行一个新的电子洽购软件时,必须正确设置你的供应商注册表(SRF)。有了这些信息的平安存储,寻找这些供应商将变得更容易,并能帮忙你和你的供应商节省时间。它还为你提供了一个现成的供应商信息储存库。 不要胆怯电子竞价很多时候,企业不愿意应用电子竞价是因为其对供应商关系的影响。他们认为,在不同的供应商之间打价格战时,可能会看到一些供应商感到他们的产品质量或提供的服务被低估,从而使目前的关系紧张。 然而,这并不是事实。供应商曾经意识到,他们须要有竞争力的价格来博得业务。他们还意识到,尽管买家应用电子竞价来升高价格,但他们的决定不会只取决于谁是最便宜的。电子竞价还能够放慢决策过程,通过缩短授予收入的工夫,所有供应商都能够受害。 引入电子竞价的最佳形式是从非关键业务我的项目开始,让利益相关者有机会真正理解电子竞价是如何运作的,以及它们有多大的效劳,并理解该零碎如何在更多收入类别中应用和调整。一旦造成了松软的了解,你就能够开始利用电子竞价来推动供应链中的进一步节约。在最好的洽购性能中,电子竞价和电子招标都有其用武之地。 创立一个时间表对于对将来将进行哪些电子洽购或投标以及如何治理这些流动方面,很多企业不足明确布局。这通常会创导致一个更被动的环境,简直不会告知员工筹备应用该电子洽购零碎。 如果提交一个截止日期较短的我的项目,洽购人员可能会默认应用相熟的旧流程并防止应用该零碎,以确保他们达到目标和截止日期。当处于这样一个被动的循环中时,它会缩小不同用户的接触量,并使不相熟的状况长期存在。 解决方案是创立一个洽购流动渠道,联合深造培训,甚至一些实际运行,让团队中的每个人都更有筹备,更有信念。实际上,许多洽购流动是在被动的、长期的根底上与洽购部门一起进行的,但通过从企业中收集尽可能多的事后告诉并创立一个时间表,具体阐明责任和时间表依然是理智的做法。简而言之,确保旧的习惯被扭转,你会看到更多的流动通过零碎进行。 让自动化帮忙你最初一个常见的电子洽购问题是,一些用户依然在手动评估他们的所有洽购流动,而不是应用电子洽购中的评估性能。试着为你的一份投标书设置主动评估,看看它如何帮忙节省时间和打消人为谬误的可能性。 能够尝试的最佳招标是那些要求大量量化信息的招标。你能够设置规定,让每一个招标响应都应用一个评分机制,确保评估的一致性,进步过程的透明度。这也开释了从事投标工作的人的工夫,使他们可能做出更理智的决定。 如何更好应用电子洽购零碎 如果没有正确应用电子洽购零碎,洽购团队中的洽购业余人员可能无奈确定正式招标、洽购申请、估算审批、库存程度、以后合同和洽购订单公布中的意外状况。 备受好评且值得信赖的8Manage SRM洽购零碎岂但简化了洽购和投标流程,缩小了人为谬误,优化了治理,还进步了从洽购到合同治理的透明度。 8Manage SRM灵便、可扩大且用户敌对的自动化洽购解决方案能够集中和简化供应商治理、合同生命周期治理、洽购订单、电子招标、搜寻和报告等。总体而言,8Manage零碎能够在管制你的企业在商品和服务上的收入方面施展重要作用:● 确保你只进行必要的购买● 确保你以正当的价格购买商品和服务● 更好的商品和服务估算 通过充沛应用电子洽购零碎和培训洽购团队,你能够确保你的业务可能继续、精简和胜利,即便在面临意外的状况下也是如此。这就是优化洽购过程的真正价值所在。

October 31, 2022 · 1 min · jiezi

关于webapp:你应该知道的项目成本控制技巧

老本管制在项目管理胜利中的重要性是每个项目经理都相熟的事件。在放弃对老本管制意识的同时,放弃对工作井井有条的解决能力并不是一项简略的技能。只管工夫和资源管理对实现目标至关重要,但老本绩效最终决定了我的项目的踊跃成绩。 我的项目老本治理 为了对估算进行适当的管制,项目经理必须进行严格的老本监督。换句话说,他们必须随时理解资金的分配情况,以及是否有什么须要扭转以满足既定的估算。 归根结底,所有项目管理的子集是老本治理。如果你无奈治理简略的老本,解决简单的我的项目将会更难。管制估算的能力意味着项目经理必须可能辨认老本起源。以下是项目经理在履行无效的老本治理时应该留神的几个方面。 ● 原始估算● 以后批准的老本● 预测老本与实际成本● 承诺老本 当项目经理相熟了须要关注的畛域,他们还能够利用一些工具来放弃进度。 胜利的老本管制 无论教训或技能如何,估算差别依然可能产生。尽管它们通常不能被齐全打消,但在晚期发现它们能够缩小其对我的项目的影响水平。 以下是胜利治理我的项目估算和放弃老本管制的一些办法: ● 在你的WBS报表中捕捉整个范畴● 保持内部利益相关者的投入和合作● 确定企业应用的老本类别● 建设项目管理团队的信赖● 立刻采取行动 我的项目进度表能够与彻底的WBS联合应用,以亲密监测老本,并在估算有超支危险时及早确定。另一种老本治理的伎俩,是通过老本控制软件,这也是最古代、最准确的措施。 8Manage PM项目管理软件可实现我的项目数据实时共享,保证数据的真实性和完整性。零碎可帮忙企业全面无效地治理我的项目层及流动层支出和老本的估算,并实时跟踪和汇总理论的支出和老本,包含我的项目中的销售订单与合同,我的项目工时老本,各项我的项目费用,洽购订单,开票与回款等。 个别的财务零碎只帮助财务人员在结算期的结账,而8Manage PM则专一于为业务人员提供在议价及交易期间所需的实时财务数字。前者基于各种税项的简短总结,而后者的数据及时且高深莫测。 我的项目老本管制技巧 老本管制的重要性能够在应用项目管理软件时失去最贴切的定义。企业能够在几分钟内无效地评估与我的项目无关的各个方面的老本。他们能够从一个仪表盘上评估、优化和管制老本治理的所有方面。 古代项目管理软件8Manage PM使项目经理可能执行老本治理工作,例如: ● 实时监控所有老本,确保它们与估算保持一致● 绘制出基于工作和团队的老本图表● 追踪生产力以预计应计费时间● 依据须要设置基于工作和小时的费率 8Manage PM提供我的项目过程表格、打算执行图,主动预警我的项目进度逾期和老本超支等状况,实时获取动静的盈亏剖析数据,让你尽可能早地发现和解决问题。 总结 老本管制是至关重要的,企业不能低估一个重要我的项目的估算。古代估算管制的最无效伎俩是通过技术。像8Manage PM这样的项目管理软件能够帮忙项目经理放弃正确的方向,并使简略的计算自动化。 有了这样的工具,项目经理能够专一于他们最善于的事件,率领我的项目走向胜利。

October 31, 2022 · 1 min · jiezi

关于webapp:WebApp-在线编程成趋势如何在-iPadMatepad-上编程

随着网络在全民范畴普及化,许多产品已跳出传统的线下应用程序框架,抓住云端利用的劣势,开发出可在浏览器中随时登录应用的网页利用。从大学生罕用的在线问卷到线上视频编辑软件,网页利用的品种和稳定性已不比线下利用差,甚至连过来依赖本地环境的编辑器(IDE)也逐步领有多种在线抉择。 网页利用与传统应用 HTML 及 JavaScript 编程的网页略有不同,进一步联合了 PHP、ASP、JSP 等服务端,解决数据贮存及获取性能。用户无需频繁刷新网页即可进行多种操作,而应用体验与本地装置的软件几近类似,极大水平上进步了轻度与跨平台办公效率。 网页利用的劣势强势崛起的网页利用到底有什么劣势,让它在短时间内称霸互联网,甚至成为将来趋势呢? 跨平台反对。网页利用无需下载安装,所以无论用户应用 Windows、MacOS 甚至 Linux 都能够间接从浏览器中拜访并应用版本通用。因为所有用户应用的都是同一版本,团队合作之间再无需放心版本适配问题不占本地空间。基于网络和服务端的网页利用不占用本地内存,放开了空间有余带来的局限性缩小盗版、病毒危险。因为无需下载安装,WebApp 还间接解决了利用付费、盗版、病毒等一系列问题。许多相似印象笔记、Lightly 也提供收费版本,对不同档次的用户也更加敌对缩小保护老本。对公司和终端用户而言,网页利用缩小了公司设施的保护老本,电脑配置较低的用户也能轻松应用如何应用 iPad 、安卓平板编程?得益于网页利用跨平台、不要求配置的个性,Lightly 这般的在线编程网页利用让 iPad、MatePad 等平板电脑实现编程可能,更让本来沦落爱奇艺、游戏机、泡面盖重回生产力路线。 与传统编辑器更贴近的 Lightly IDE 在编程语言反对上则更为宽泛,用户只需在浏览器中关上即可开始编程,而且所编写的代码都会实时贮存在云端服务器上,丝毫不占用本地资源。即便是内存只有 32G 的入门款 iPad,也能轻松任编程工作。 应用 iPad 编程须要启动浏览器中的“申请桌面网站”,安卓平板依据浏览器不同,也能够在浏览器设置中找到相应的开关。 基于云端的 Lightly IDE 能够为用户自动检测及配置环境,由此略过了麻烦且耗时的环境配置工作,在跨平台作业上也对用户更为敌对。 教育优惠动手根底款 32G iPad 搭配万金油的罗技 K380 键盘应用,即便是学生党也能够在 2500 元的预算内让平板实现生产力,对于华为、小米等价格更实惠的平板而言更是如此。 Lightly IDE 在平板上的界面与桌面版一模一样,同时也反对触屏键盘与蓝牙实体键盘打字: 尝试应用 Lightly 间接关上以上 Python 我的项目https://538cd3972a-share.ligh...如何关上并编辑别人用 Lightly 分享的我的项目? Lightly IDE 的劣势 免环境装置。基于云端的 Lightly IDE 可为用户自动检测并配置环境,缩小了开发者配置环境所消耗的工夫经验,也对初学者更加敌对。多语言反对。Lightly IDE 目前已上线 C、C++、Java、HTML、JavaScript、PHP、Go 等编程语言反对,将来也将反对 Rust 和 Ruby。分享合作便捷。应用 Lightly 的用户只需通过内置的分享和合作模块,即可一键分享本人的代码或邀请其余搭档进行团队合作。语法高亮、智能提醒。作为轻量且功能强大的集成开发工具,Lightly 已在各个编程语言中适配语法高亮、智能补全和提醒等,让编程更为简略直观。用户齐全可在 iPad、MatePad 等平板电脑上实现电脑网页端的所有性能,Lightly 自带的云端贮存对跨平台编程也非常敌对,用户无需放心切换设施而代码文件却忘了贮存或同步等问题。你也能够查看 Lightly 往期的利用场景,理解更多 Lightly 的性能:如何在 Lightly 用 JS 制作俄罗斯方块游戏Python 教程:从 Python 爬虫到数据分析无需下载软件,有手就能做的线上个人简历! ...

May 15, 2022 · 1 min · jiezi

关于webapp:手机网站一键秒变App详细教程来了

App开发大家都耳熟能详,可如果要把一个网站变成app,须要怎么操作?一款利器为大家奉上。 应用APICloud开发平台能够在线云编译,将已有HTML5网站一键打包生成iOS、Android App,并且能够随同HTML5网站的更新自动更新。不过有一点须要留神,网站须要进行过挪动端适配。 首先,进入APICloud官网www.apicloud.com并实现注册。进入开发控制台,点击创立利用,抉择Web App,填入利用名称和网址,就能够轻松创立利用。 而后在控制台云编译界面上传图标和启动页,就能够编译App的正式包,下载或者扫码装置就能够间接应用了。当然在打包之前,HTML5网站须要做手机端的适配。 下图是以APICloud官网为例,在安卓模拟器上的效果图。 另外,应用APICloud开发平台能够在网址打包的根底上,接入局部性能,在控制台间接应用Web App 是没有代码的,只有一个apk包,如果想接入平台的模块,就须要在控制台创立 Native App, Native App 能够增加模块并检出代码,而后在代码中进行革新,引入相干代码,上传后从新编译。就能够应用了。 而后在APICloud Studio 3(可在https://www.apicloud.com/studio3下载)中检出检出代码,在main.html 用 api.openFrame 关上网址,如图所示: 开发App常见的统计和推送等性能都能够接入,依照APICloud开发平台的官网文档,接入即可。这里就简略介绍一下这两个模块如何接入。相干的示例代码如下,在应用模块之前,须要在模块库中搜寻相干模块,而后增加到利用中,编译。 接入友盟统计 须要配置文件中须要增加: <feature name="umAnalytics">    <param name="android_appkey" value="**************"/>    </feature>其中 android_appkey 是在友盟后盾创立利用申请的 AppKey;在main.html中增加一下相干代码: var umAnalytics = api.require('umAnalytics');        umAnalytics.config();        umAnalytics.init();        api.addEventListener({            name: 'resume'        }, function (ret, err) {            umAnalytics.onResume();        });        api.addEventListener({            name: 'pause'        }, function (ret, err) {            umAnalytics.onPause();        });这样就能够接入友盟统计了,通过友盟的后盾,能够对启动次数、事件、页面等app数据的统计,更具体的接入文档请参考APICloud官网文档:https://docs.apicloud.com/Client-API/Open-SDK/umAnalytics 接入极光推送 接入极光推送,也须要在极光官网注册帐号,并创立利用,获取APP\_KEY。在config.xml中配置meta-data,填写JPUSH\_APPKEY及JPUSH_CHANNEL参数。 配置文件中代码如下: <meta-data name="JPUSH_CHANNEL" value="渠道号"/> <meta-data name="JPUSH_APPKEY" value="通过极光推送网站取得appkey" /> 而后在增加初始化代码就能够应用了,这里须要留神的是初始化办法只Android无效,iOS上会主动初始化 var jpushVip = api.require('jpushVip'); jpushVip.init(function(ret) {if (ret && ret.status){ //success } });离线推送,须要配置极光厂商通道,具体的办法能够参考:https://docs.apicloud.com/Client-API/Open-SDK/jpushVip 此外也能够接入其余性能,详细情况能够到APICloud官网进行理解。

May 13, 2022 · 1 min · jiezi

关于webapp:敏捷开发一中校友登记小程序诞生笔记

背景第一中学建校一百多年来,一代又一代学子从母校登程奔向世界各地,服务于社会各行各业。因为办校时间跨度大,很多校友已与母校失去分割。为更好地实现“服务校友、服务社会”的办会指标,校友会召唤宽广一中校友参加到校友注销工作中来,为丰盛母校历史、凝聚一中力量出一份力。 在热心校友的技术支持下,“校友登记注册”小程序已全新上线!为了各位校友能顺畅进行注销工作,校友会特地筹备了【登记注册流程】。 第一步:注销进入欢送注销页面,点击“立刻注销”按钮 第二步:注销信息进入校友注销页面,填写个人信息后,点击“校友注销”按钮实现初步注销(上图2),点击“去申请”进行进一步验证(上图3)。刷新界面后如下图 第三步:注册为“认证校友”进入校友验证页面,填写集体验证信息,点击“提交并验证”按钮(下左图)。其中,“班主任”或“两名同学(同届)”至多要有一项全对即可通过身份验证,成为“认证校友”! 第四步 会员申请校友应按校友会章程规定,承当缴纳会费任务。请依据集体角色缴纳相应会费, 整体架构 代码 https://gitee.com/minzonetech/ccreg

November 13, 2021 · 1 min · jiezi

关于webapp:APP开发流程注意事项有哪些

APP开发的定义诚然简略,但对于精益求精的开发者们来说,在制作实现一件完满的APP之前,总是要历经无穷无尽的重复思考,从APP的首轮设计规划阶段、再到APP的填充修理环节,再到最终的生成公布。   一、纸上阶段  每个APP在在正式上架之前都要经验“纸上”(或屏幕上)的阶段。这一设计阶段决定了APP的整体框架结构,后续的所有工作都是围绕着它来开展的。因而,这时候,开发者们须要思考的问题就包含有格调基调的奠定、功能模块的划分等。你能够间接到App Store、安卓市场或者品向科技经典案例中去学习滞销APP的过人之处,从而搭建出具备集体特色又不是市场感觉的APP框架来,这个钻研的过程很简略,不费分文,而且十分乏味。  二、施行阶段  当初是将你的研究成果转化成产品的时候了,你须要作为一个“开发者”到你想为之开发应用程序的某个平台去注册一个开发账号并且学以致用。不要被“开发者”三个字吓到,因为时下有不少优良的APP收费开发平台,并不需要你具备业余的设计和编程常识。你只需沿着本人的思路跟着平台的相应步骤一步步施行上来即可。抉择让你和用户感觉最舒服的表达形式,细细勾画最可能感动用户的细节是这个阶段你所最须要留神的中央。“不论什么年龄和背景,所有人都喜爱清晰、简略、天然、好用的设计和产品,这是人对美最天然的感触和谋求。”  三、测试阶段  如果你认为将内容填进APP框架后就意味着完结和胜利,那么你就大错特错了,总会有些小细节是你不小心疏忽的,因为,搭建完结后,你必须要查看测试、下载应用并加以修理。用真机进行模仿,从而最大化贴合用户的应用场景。  四、公布阶段  当初,是时候将你实现的APP提交到App Store中进行审查了。苹果公司对应用程序的审查工夫取决于开发者是集体还是企业。如果是集体,预计要等3至7天,如果是企业,则将会破费7到10天的工夫。当然,也有不少的APP开发平台会提供“代上架”的服务,有免费性质的也有收费提供的,开发者们可依据本人的需要抉择相应服务,从而防止本人进行提交的过程中可能产生的诸多繁琐问题。   看过一份“对于用户为什么会删除一款APP”调查报告,外面说到:装置APP的2h到24h为产品的体验期。使用者通常从易上手水平、UI设计、性能、设置的人性化与否角度思考,从而决定是否一个APP的去与留。能够看到,这些都是跟用户体验挂钩的,体验的好坏,决定了一款APP的生命期限,因而,用户体验是贯通于APP开发始末的,所有开发者都要将这一点落到实。   文章出自:好买网 IT技术交易平台

October 22, 2021 · 1 min · jiezi

关于webapp:使用Hbuilder打包app

第一步在Hbuilder上新建一个“挪动APP”wolf(我的项目命名随便)(如果没用援用mui框架的货色,“抉择模板”中能够勾选“空模板”) 第二步新建“空模板”我的项目wolf中,删除不必要的文件夹,只保留以下文件 第三步而后把你的H5我的项目外面相干的文件拷贝到Hbuilder中新建的我的项目wolf中(本人的H5我的项目文件)(拷贝到HBuilder中) 第四步点击maifest.json配置文件,须要对截图中红色框外面相干的信息进行配置 第五步配置完相干的信息之后,点击选项卡“发行”-> "发行为原生安装包",进行打包 第六步截图为将我的项目打包成Android原生的app 打包胜利截图:

January 11, 2021 · 1 min · jiezi

关于webapp:使用Hbuilder打包app

第一步在Hbuilder上新建一个“挪动APP”wolf(我的项目命名随便)(如果没用援用mui框架的货色,“抉择模板”中能够勾选“空模板”) 第二步新建“空模板”我的项目wolf中,删除不必要的文件夹,只保留以下文件 第三步而后把你的H5我的项目外面相干的文件拷贝到Hbuilder中新建的我的项目wolf中(本人的H5我的项目文件)(拷贝到HBuilder中) 第四步点击maifest.json配置文件,须要对截图中红色框外面相干的信息进行配置 第五步配置完相干的信息之后,点击选项卡“发行”-> "发行为原生安装包",进行打包 第六步截图为将我的项目打包成Android原生的app 打包胜利截图:

January 11, 2021 · 1 min · jiezi

关于webapp:WebAPP或HybridApp实现自动更新

前言自动更新APP实现自主更新,及时修复问题,不影响线上运行。 1.找到对应利用注册中控易动平台账号(https://www.yd-mobile.cn/),点击右上角 "控制台",进入控制台之后点击 "我的利用",找到对应利用。如果没有利用能够参考之前发的文章“web我的项目一键打包,可同时生成Android、ios端” 2.更新利用①在线利用实现更新 在线利用是用户自行更新的,依据本人写的首页地址(对应本人前端工程搁置的地位,失常是在本人服务器存储)间接自主更新。②离线利用实现更新 离线利用是在弱网或者无网路状况下能够拜访的利用。在有网络时,通过“更新离线资源”操作将新的离线资源压缩包上传到平台,APP能够实现实时更新平台最新的离线资源,不必下载APP。上传离线资源,点击确定,就能够了。至此,离线资源更新实现。

October 22, 2020 · 1 min · jiezi

关于webapp:移动应用APP开发WebAppHybridApp-NativeApp与原生的交互

随着H5规范的公布,使得挪动利用的开发有了更多的抉择,出于效率、老本、品质等起因,挪动利用不再只是单纯的原生开发。 明天就简略总结一下目前的三大支流挪动利用开发类型。 一、WebApp、HybridApp、 NativeApp简略介绍WebApp WebApp是指应用前端语言编写的能够用于多平台的利用,运行在手机或浏览器上,对手机性能要求比拟高。 受限于手机的webView,页面广泛寄存于服务器。更新容易,更新无需告诉用户,不必手动降级。开发成本低,保护简略。体验差,用户留存较低。网络依赖性较强。HybridAppHybridApp是指应用原生语言与前端语言编写的只能用于iOS和Android平台的利用,但其总体个性更靠近NativeApp。 前端JS调用原生提供的JS的API,实现性能。更新较容易,大部分须要无奈自动更新,中控易动可实现更新无需告诉用户,不必手动降级。开发成本低,保护简略。受限于手机的webView。仍受限于技术,网速。体验好,用户留存高。NativeAppNativeApp是指基于手机操作系统如iOS、Android,应用原生程式编写的利用,运行在手机上。 罕用语言iOS :Objective-C swiftAndroid :JAVA 开发成本高,须要两端开发人员,保护老本高。更新较难,须要上传利用市场,须要手动降级。用户体验好,留存率高。性能稳固,反应速度快。二、WebApp、HybridApp、 NativeApp与原生的交互WebApp:h5与WKWebView交互 例如:WKWebView加载html链接展现页面: oc中WKWebView实现: //与前端约定对立标识符:nameIDWKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];WKUserContentController * wkUController = [[WKUserContentController alloc] init];[wkUController addScriptMessageHandler:self name:@"nameID"];config.userContentController = wkUController; //创立WKWebViewself.webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, ScreenHeight) configuration:config];self.webView.navigationDelegate = self;[self.view addSubview:self.webView];//加载urlNSURL * baseUrl = [NSURL URLWithString:self.url];NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:baseUrl];[_webView loadRequest:request];#pragma mark -- WKScriptMessageHandler- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message{ //判断是nameID if([message.name isEqualToString:@"nameID"]){ //写点击按钮的执行办法 }}HTML中按钮点击事件中实现: function jsFunction(){window.webkit.messageHandlers.nameID.postMessage({});}HybridApp:抉择第三方框架,依据JS API接口调用。例如:中控易动,依据插件文档应用JS API接口应用 ...

October 20, 2020 · 1 min · jiezi

关于webapp:什么是PWA

web是一个很神奇的平台,领有跨设施和跨操作系统的兼容性,领有以用户为核心的权限模型。它标准是由w3c和whatwg两个组织独特定制,它的实现则是交给各个浏览器厂商。再加上其固有的可连接性,用户能够随时随地搜寻到,或者分享一个网页给任何人。不论何时拜访网页,都是最新的。WebApp只须要一套代码,就能够触达任何人,任何中央,任何设施。 原生App因为牢靠而且丰盛的性能而著称。它们会始终待在你的设施上,在屏幕、面板、或者任务栏里。通常,它们不依赖网络连接即可应用。它们以本人独立的体验启动。它们能够读写文件,通过本地文件系统,能够通过USB接口连贯硬件,也能够和存储在本地设施的数据交互,像是联系人和日历。在原生App中,你能够拍照,在主屏幕看到正在播放的歌曲列表,或者通过其余App管制播放。原生App就像零碎的一部分一样。 如果你要比照原生App和WebApp在性能上和可触达上的区别,原生App在性能上最佳,WebApp在可触达上最佳。那么PWA又如何? PWA全称Progressive Web Apps(渐进式WebApp),是通过古代API来构建和加强的,这些API提供了与原生App类似的能力、可靠性、可安装性,而且具备一套代码即可触达任何人、任何中央、任何设施。 三大App个性功能性(capable)可靠性(reliable)可安装性(installable)PWA同时具备这三大个性,这也让PWA的利用体验更靠近原生。 功能性Web App当今时代曾经具备了丰盛的性能,你能够基于 WebRTC 开发一个视频聊天工具,能够应用 Geolocation API 开发一个地图软件,也能够应用 Notification API 来给你的APP推送音讯,让用户能够在APP之外接管到告诉。你也能够应用 WebGL 和 WebVR 来虚拟化这些场景。通过 Web Assembly,你能够步入其余生态,比方:C和C++等,给Web生态带来更多能力。 直到最近,只有原生App宣称具备这些性能。当然,有一些能力还是web以后无奈应用的,但新的API会被定义,用来扩大Web能力,比方让Web领有文件系统的拜访权限、媒体管制权限、图标上的badge批改权限、剪切板的全副性能。所有的这些能力都与Web平安、用户为核心的权限模型独特构建,确保拜访网站不会给用户造成威逼。 随着古代API的定义,Web的功能性会越来越丰盛。 可靠性一个牢靠的PWA利用感触起来很快,而且不依赖网络。 速度对于用户应用体验来说至关重要。实际上,页面加载的工夫从1-10秒,用户散失会增长123%。性能也并非在 onload 事件之后就完结了。用户无需时刻放心他们的交互(例如点击了按钮)有没有响应。滚动和动画须要放弃晦涩。 最初,牢靠的App须要对网络无依赖。用户会冀望在弱网或者无网络的状况下关上App。他们冀望看到上次他们加载的内容,就像是音频或者视频播放到某个特定工夫点,即便网络连接艰难,还是要放弃牢靠和可用。如果申请失败了,比起默默地失败或者解体,给用户正当的提醒才是最佳。 用户更喜爱App能够在眨眼睛响应他们的操作,这也是可靠性的一种。 可安装性装置好的PWA利用能够在一个独立的窗口启动,而不必在浏览器中。它们也能够从主页、docks或者任务栏启动。你也能够搜寻到它们,而后从搜寻后果中关上。你也能够切换到其余App,而后再切换回来。这感觉就跟原生App简直统一,成为设施的一部分。 装置好的PWA利用将开启更多新性能,能够反对快捷键,也能够反对关上特定格式文件。 当PWA利用从独立窗口关上,它会扭转用户的感知,以及应用的形式,用户会当成原生利用来应用,而毫无差别感。 两败俱伤PWA的外围还是WebApp,通过渐进式加强,新的性能被古代浏览器实现。通过应用 service worker 和 app manifest,能够让你的WebApp具备可靠性和可安装性。如果浏览器不反对这些性能,你的网站的外围性能也不受影响。 总结当然应用PWA还有很多其余的惊喜,App的体积上更小了,如果说一个30M的原生App换成PWA,可能只有3M不到。另外,PWA的利用的可触达性是继承了WebApp的,能够通过搜索引擎让触达更多用户,或者通过分享的形式。最初,PWA的利用可随时更新,无需用户下载安装。 惟一要留神的是,为了让它更像原生App,请在性能优化上做到极致。对于性能优化方面,能够参考之前写的一些文章。 参考https://web.dev/what-are-pwas/

September 13, 2020 · 1 min · jiezi

好快-1分钟开发好一个下拉刷新滚动加载列表

好快, 1分钟写好下拉刷新,滚动加载自动分页列表前言欢迎关注BUI Webapp专栏 或者 bui神速微信公众号. 以往文章: 2019开发最快的Webapp框架--BUI交互框架微信Webapp开发的各种变态路由需求及解决办法!【BUI实战篇】BUI数据驱动做的拼图游戏 Webapp移动适配版,基于vuejs拼图游戏改造webapp结合Dcloud平台打包图文教程一张脑图看懂BUI Webapp移动快速开发框架【上】--框架与工具、资源一、观看实操视频 点击观看视频实录 安装完以下环境后, 从0到1, 手把手教, 你也可以做到!二、开发准备安装buijs cli命令行工具(需要先安装node环境, 建议使用node 8.x);如何安装使用buijs?安装bui-fast 快速编辑器插件(推荐vscode);如何安装使用bui-fast?打开跨域的chrome浏览器;如何打开跨域的Chrome浏览器?三、开发过程使用 buijs 构建工程 1.创建Webapp工程buijs create demo2.安装依赖cd demo/npm installwindows 推荐使用淘宝的 cnpm install3.运行预览npm run dev使用bui-fast编辑器插件生成控件视频里使用的是vscode 可以在安装插件那里找到 bui-fast. xxx 假设为控件名生成规则1: 在html里, 使用 ui-xxx 生成控件结构ui-list生成以下结构 <div id="uiList" class="bui-scroll"> <div class="bui-scroll-head"></div> <div class="bui-scroll-main"> <ul class="bui-list"> </ul> </div> <div class="bui-scroll-foot"></div></div>在js里, 使用 bui-xxx 生成控件的初始化代码bui-list生成以下初始化代码 // 列表控件 js 初始化:var uiList = bui.list({ id: "#uiList", url: "http://rap2api.taobao.org/app/mock/84605/example/getNews", pageSize: 5, data: {}, //如果分页的字段名不一样,通过field重新定义 field: { page: "page", size: "pageSize", data: "data" }, callback: function(e) {}, template: function(data) { var html = ""; data.forEach(function(el, index) { html += `<li class="bui-btn bui-box"> <div class="bui-thumbnail"><img src="${el.image}" alt=""></div> <div class="span1"> <h3 class="item-title">${el.name}</h3> <p class="item-text">${el.address}</p> <p class="item-text">${el.distance}公里</p> </div> <span class="price"><i>¥</i>${el.price}</span> </li>` }); return html; }});保存就会自动预览四、从bui.list看自动分页设计原理 ...

August 27, 2019 · 2 min · jiezi

cordovavue-webapp-使用html5获取地理位置

1.在HTML5中使用Geolocation.getCurrentPosition()方法来获取地理位置。 语法: navigator.geolocation.getCurrentPosition(success, error, options)参数: success: 成功得到位置信息时的回调函数,使用Position 对象作为唯一的参数。 error: 获取位置信息失败时的回调函数,使用 PositionError 对象作为唯一的参数,这是一个可选项。 options:一个可选的PositionOptions 对象,包含以下3个参数。 enableHighAccuracy 是一个Boolean值,用来表明应用是否使用其最高精度来表示结果,默认为false。 timeout 是一个正的long值,表明的是设备必须在多长时间(单位毫秒)内返回一个位置,默认是Infinity。 maximumAge 是一个正的long值,表明可以返回多长时间(即最长年龄,单位毫秒)内的可获取的缓存位置。如果设置为 0, 说明设备不能使用一个缓存位置,而且必须去获取一个真实的当前位置。如果设置为 Infinity ,那么不管设 置的最长年龄是多少,设备都必须返回一个缓存位置。默认值:0 2.success - 成功得到位置信息时的回调函数 navigator.geolocation.getCurrentPosition(function(position)) { // 获取成功时的的处理 //参数position是地理位置对象}position中返回的信息如下图: accuracy 获取到的纬度或者经度的精度(以米为单位)altitude 当前地理位置的海拨高度(不能获取为null)altitudeAccurancy 获取到的海拨高度的经度(以米为单位)heading 设备移动的方向(以度为单位)latitude 当前地理位置的纬度longitude 当前地理位置的经度speed 设备的前进速度(以米/秒为单位,不能获取时为null)timestamp 获取地理位置信息时的时间3.error - 获取位置信息失败时的回调函数 navigator.geolocation.getCurrentPosition(function(position){ // 获取成功时的的处理; //参数position是地理位置对象},function(error)) { // 获取失败时的的处理;}error中返回的信息如下图 code属性有以下值: - 1 地理位置信息的获取失败,因为该页面没有获取地理位置信息的权限。- 2 地理位置获取失败,因为至少有一个内部位置源返回一个内部错误。- 3 获取地理位置超时,通过定义PositionOptions.timeout 来设置获取地理位置的超时时长。message 返回一个开发者可以理解的 DOMString 来描述错误的详细信息。 4.使用Geolocation.getCurrentPosition()注意事项: ...

July 5, 2019 · 1 min · jiezi

WebApp-安全风险与防护系列一

WebApp 安全风险与防护(系列一)讲师资料:Carl(陈庆),葡萄城高级架构师、葡萄城技术公开课讲师。拥有15年项目开发经验,专注于产品架构、编程技术等领域,对网络安全有着独到见解,曾担任微软TechEd讲师,乐于研究各种前沿技术并分享。 2018 网络安全事故频发,从数据泄露、信息窃取,到 DDOS 攻击、勒索病毒,不仅威胁的总数在增加,威胁态势也变得更加多样化,攻击者在不断开发新的攻击途径的同时,也尽力在攻击过程中掩盖其踪迹,使网络安全防护变得越发棘手。未来是万物互联的时代,唯有把握住网络信息安全,才能避免被降维打击。本场Chat,我们特邀Carl作为分享嘉宾,于葡萄城技术公开课上,以 WebApp 安全防护为出发点,带你了解更多意想不到的安全防护措施与黑客攻击手段,助你提高网络安全意识,最终学会如何规避风险隐患,避免遭受网络安全攻击。欢迎大家扫描下图二维码,预约报名参加。 直播地址:http://live.vhall.com/137416596 下面开始展开正文。 第一节:开阔眼界 – 提升安全意识提升网络安全意识对项目团队中的每一个角色、每一个流程都至关重要。同时,也只有具备了网络安全意识,才愿意为数据安全投入更多的时间和精力。下面,我将为您展示部分2018年发生的网络安全事故,这些事故造成的损失,也许远远超出你的想象。 2018 网络安全事故回顾Facebook数据泄露事件:2018年9月,Facebook因安全系统漏洞而遭受黑客攻击,导致约5000万用户信息泄露。 上市公司数据堂,涉嫌侵犯数百亿条公民个人信息:大数据行业知名企业数据堂在短短8个月的时间内,日均泄露公民个人信息1.3亿余条,累计传输数据压缩后约为4000GB。 圆通10亿快递信息泄露: 10亿条用户数据遭公开售卖,这些数据包括寄(收)件人姓名、电话、地址等隐私信息。 万豪酒店5亿用户开房信息泄露:万豪酒店客房预订数据库遭黑客入侵,约5亿名客户的信息可能被泄露。 更多数据泄露事件国泰航空数据泄露,940万乘客受影响MongoDB 数据库被入侵, 1100 万份邮件记录遭泄露SHEIN 数据泄露影响 642 万用户GovPayNet凭证系统存在漏洞,1400万交易记录被曝光小米有品平台泄露个人隐私 约2000万用户数据遭泄露…勒索病毒事件美国亚特兰大市政府受到勒索软件攻击美国巴尔的摩市遭遇勒索软件攻击,导致911紧急调度服务的计算机辅助调度(CAD)功能掉线台积电勒索病毒事件,约造成17.6 亿元的营收损失,股票市值下跌78亿很多个人电脑和中小网站都曾遭受攻击DDoS 攻击平昌冬奥会开幕式服务器遭到身份不明的黑客入侵GitHub遭1.35T级流量攻击年度重大漏洞盘点CPU数据缓存机制漏洞iOS 平台WebView组件漏洞(UIWebView/ WKWebView)跨域访问漏洞(CNNVD-201801-515)Oracle WebLogic Server WLS核心组件远程代码执行漏洞微信支付SDKXXE漏洞Apache Struts2 S2-057安全漏洞第二节:知己知彼 – 黑客如何攻击系统一名黑客攻击网站的典型步骤,主要分为以下5步: 信息收集和漏洞扫描漏洞利用上传木马获取服务器的控制权清理痕迹总结:黑客不是手动测试系统漏洞的,而是有很多强大的工具可以自动化完成 黑客不是利用系统中的一个漏洞,而是要利用一系列,不同层次的漏洞 黑客经常批量攻击一系列网站,选取其中漏洞较多,较好利用的重点突破 第三节:十大安全风险(OWASP Top 10)不安全的软件正在破坏着我们的金融、医疗、国防、能源和其他重要的基础设施。随着我们的软件变得愈加庞大、复杂且相互关联,实现应用程序安全的难度也呈指数级增长。而现代软件开发过程的飞速发展,使得快速、准确地识别软件安全风险变得愈发的重要,OWASP 组织也因此诞生。 OWASP,即开放式Web应用程序安全项目(Open Web Application Security Project),作为一个开源的、非盈利的全球性安全组织,它提供了有关计算机和互联网应用程序的公正、实际、有成本效益的信息,其目的是协助个人、企业和机构来发现并使用可信赖的软件。 OWASP Top 10是由OWASP组织公布,最具权威性的“10项最严重的Web应用程序安全风险预警”,其就安全问题从威胁性和脆弱性两方面进行可能性分析,并结合技术和商业影响的分析结果,输出公认的、最严重的十类Web应用安全风险排名。OWASP Top 10旨在针对上述风险,提出解决方案,帮助IT公司和开发团队规范应用程序开发流程和测试流程,提高Web产品的安全性。 OWASP敦促所有公司在其组织内采用OWASP Top 10文档,并确保其Web应用程序最大限度地降低这些风险,采用OWASP Top 10可能是将企业内的软件开发文化转变为生成安全代码文化最行之有效的一步。 OWASP Top 10包括:注入失效的身份认证敏感信息泄露XML外部实体(XXE)失效的访问控制安全配置错误跨站脚本(XSS)不安全的反序列化使用含有已知漏洞的组件不足的日志记录和监控以上便是从本次Chat——“WebApp 安全风险与防护(系列一)”中截取的部分内容,下一期将详细介绍OWASP Top 10及其应对策略。更多关于 WebApp 安全风险防护手段及葡萄城安全架构中的实践分享,将在葡萄城系列公开课“WebApp 安全风险与防护”中,由Carl亲自讲解,诚邀您学习观看。公开课地址:http://live.vhall.com/137416596 公开课时间:2019/6/26 (周三)16:00 PM ...

June 25, 2019 · 1 min · jiezi

happyChat开发系列:使用websocket.io实现双向通信的乐聊大前端开发

一、前言乐聊是一个自己用websocket写一个完整的应用,虽然功能比较欠缺,但是实现了基本的文字聊天,以及群聊,私聊,机器人聊天等功能。因为这个自己做了PC端,无线端(手机端),以及使用cordova打包成一个android的apk。实现了一个大前端的项目,虽然现在android端还是有点有问题,在修改bug。二、websocket的原理介绍1、为什么需要websocket?因为 HTTP 协议有一个缺陷:通信只能由客户端发起。举例来说,我们想了解今天的天气,只能是客户端向服务器发出请求,服务器返回查询结果。HTTP 协议做不到服务器主动向客户端推送信息。这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。我们只能使用"轮询":每隔一段时候,就发出一个询问,了解服务器有没有新的信息。最典型的场景就是聊天室。轮询的效率低,非常浪费资源(因为必须不停连接,或者 HTTP 连接始终打开)。2、简介websocket特点:服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送技术的一种。其他特点包括:(1)建立在 TCP 协议之上,服务器端的实现比较容易。(2)与 HTTP 协议有着良好的兼容性。默认端口也是80和443,并且握手阶段采用 HTTP 协议,因此握手时不容易屏蔽,能通过各种 HTTP 代理服务器。(3)数据格式比较轻量,性能开销小,通信高效。(4)可以发送文本,也可以发送二进制数据。(5)没有同源限制,客户端可以与任意服务器通信。(6)协议标识符是ws(如果加密,则为wss),服务器网址就是 URL。三、websocket.io使用1、前端在vue项目中,在index.html中 <script src=“https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js"></script><script> // const socketWeb = io(‘http://localhost:3000’); const socketWeb = io(‘http://chat.chengxinsong.cn’); const userInfo = JSON.parse(sessionStorage.getItem(“HappyChatUserInfo”)) if (userInfo) { socketWeb.emit(‘update’, userInfo.user_id); }</script>2、后端后端是使用koa作为后端const app = new Koa();const server = require(“http”).createServer(app.callback());const io = require(“socket.io”)(server);io.on(“connection”, socket => { const socketId = socket.id; /登录/ socket.on(“login”, async userId => { await socketModel.saveUserSocketId(userId, socketId); }); // 更新soketId socket.on(“update”, async userId => { await socketModel.saveUserSocketId(userId, socketId); }); //私聊 socket.on(“sendPrivateMsg”, async data => { const arr = await socketModel.getUserSocketId(data.to_user); const RowDataPacket = arr[0]; const socketid = JSON.parse(JSON.stringify(RowDataPacket)).socketid; io.to(socketid).emit(“getPrivateMsg”, data); }); // 群聊 socket.on(“sendGroupMsg”, async data => { io.sockets.emit(“getGroupMsg”, data); }); //加好友请求 socket.on(“sendRequest”, async data => { console.log(“sendRequest”, data); const arr = await socketModel.getUserSocketId(data.to_user); const RowDataPacket = arr[0]; const socketid = JSON.parse(JSON.stringify(RowDataPacket)).socketid; console.log(‘给谁的socketid’,socketid) io.to(socketid).emit(“getresponse”, data); }); socket.on(“disconnect”, data => { console.log(“disconnect”, data); });});四、简介和功能乐聊,一个快乐聊天的应用,支持PC端和无线端和安卓APP。(1)PC端和无线端线上地址:http://chat.chengxinsong.cn(2)下载安卓APP地址:暂时还有点小问题待解决,后边放出地址版本v 1.0.0- 1、支持注册用户和邮件激活用户;- 2、支持登陆- 3、支持机器人聊天;- 4、支持加好友,一对一聊天;- 5、支持创建群,加群,一对多聊天;- 6、支持删除好友,退出群- 7、支持个人信息编辑- 8、支持添加好友备注- 9、支持聊天中文字发送- 10、支持浏览器:Chrome,Firefox,Safari,IE9及以上; 版本v 1.1.01、支持聊天中图片发送2、支持聊天中表情发送待续五、运行截图等等。。。六、前后端源码前端代码:https://github.com/saucxs/hap…后端代码:https://github.com/saucxs/hap…七、最后欢迎fork和star,有问题提issue ...

April 16, 2019 · 1 min · jiezi

uni-app多平台开发,小程序登录、APP微信登录(uni.login)

如图所示:uni.login使用静脉方法:小程序使用uni.login,只能获取到code。而H5+APP,使用uni.login。可以获取:openid、unionid、access_token等等小程序:{“code”:“0236CqpO0a3kb42L0erO0bZ0pO06Cqpv”,“errMsg”:“login:ok”}H5+APP:{“code”:“0236CqpO0a3kb42L0erO0bZ0pO06Cqpv”,“authResult”:{“openid”:“oRrdQtx7RJw6w6zz9iZhGrHvp6Qc”,“scope”:“snsapi_userinfo”,“refresh_token”:“19_SJM14bZu08inkTe8J_aDsfNxH5v1ftPkqV6cpTwEcrMsSNAxX0mMTdq8YA3udOx4FJe6hlynfYc-FC5B64NqrZ7ucjarnEHGhsEg9aGgS00”,“code”:“0236CqpO0a3kb42L0erO0bZ0pO06Cqpv”,“unionid”:“oU5Yyt3qmzKTnWAdYmzcNBRO16Kw”,“access_token”:“19_prXs1gdV1YT5vorMMY_GhRts4iZtVUCmrnqL2AAMHMShjvgQEtb7BSnRpcPBRoDHQk1CNPFrx0Gckhc9tLqFlrmyCwE-_f7XZBUttOw22EY”,“expires_in”:7200},“errMsg”:“login:ok”}然后,传参数给接口,即可

March 7, 2019 · 1 min · jiezi

Flask 学习笔记(1) --- 搭建你的第一个 web server

开发环境Ubuntu 16.04Python 3.5Flask 1.0.2命令如下sudo apt-get upgradesudo apt-get install python3-setuptoolssudo apt-get install python3-devsudo apt-get install python3-pipsudo pip3 install pip –upgradesudo pip3 install flask第一个 server首先我们创建一个文件夹 webapp, 并在其中新建一个 main.py 文件mkdir ~/webappcd ~/webapptouch main.py接着, 我们打开 main.py, 按照 Flask Quickstart 的示例, 开始编写第一个 serverfrom flask import Flaskapp = Flask(name)@app.route(’/’, methods=[‘GET’])# methods 默认是 GET 因此可以简写为如下形式# @app.route(’/’)def hello(): return ‘Hello’if name == ‘main’: app.run(host=‘0.0.0.0’, port=8080, debug=True)保存文件后, 在 Terminal 中输入如下命令, 即可运行 webapp. 我们在浏览器中输入 http://server_ip:8080 即可访问网站, 页面的内容就是 Hellopython3 main.py编写 IndexHandler在上一节中, 我们使用了 @ decorator 来指定某个路由对应的处理函数, 这样的写法非常方便. 同时, 我们也可以编写我们自己的 Handler 来处理各个不同的页面(路径). 比如, 对于首页 Index, 即 http://server_ip:8080/, 我们可以编写一个 class IndexHandler, 注意这是一个 MethodView 的子类, 也就是说这是一个 View Handlerfrom flask import Flaskfrom flask.views import MethodViewapp = Flask(name)class IndexHandler(MethodView): def init(self, name): print(name) def get(self): return ‘It is a GET request’ def post(self): return ‘It is a POST request’if name == ‘main’: app.add_url_rule(’/’, view_func=IndexHandler.as_view(‘index’)) app.run(port=8080, host=‘0.0.0.0’, debug=True)根据 flask docs, 传给 as_view() 的参数 name 会转发给构造函数, 我们暂时用不到这个参数 name , 但是为了保持命名的一致性, 我们将其设置为 index保存文件后, 在 Terminal 中输入如下命令, 即可运行 webapp. 我们在浏览器中输入 http://server_ip:8080 即可访问网站, 页面的内容是 It is a GET requestpython3 main.py参考资料quickstart, flask docsas_view, flask docsflask/flask/views.py ...

February 13, 2019 · 1 min · jiezi

android 中文字体向上偏移解决方案

android 中文字体向上偏移解决方案在开发 webapp 时,发现在 android 端的中文会莫名其妙的向上偏移。为了解决这个问题,尝试了很多方法,最后使用以下解决方案。1.bug 出现目前在开发 webapp,在调试的时候,发现项目里面的中文有一点向上偏移。具体表现为:使用开发者工具去查看元素,元素的真实高度和位置与文字不同。列如,一个span的font-size和line-height都设置为16px,在调试时,元素的高度确实是16px,但是,中文的高度看起来并不止16px,而且显示的位置明显超出了元素的尺寸范围,向上偏移。开始的时候还以为是样式导致的,于是尝试各种修改 css,但是完全没有用。后来在网上看到用“定位”或者“上边距”来强制文字的位置,但是发现这个方法太麻烦了,最终放弃这个方案。后来想到使用的是ubuntu,怀疑可能是系统默认字体的原因导致了这个问题。于是下载了一个字体文件(用的是“思源黑体”)。然后配置全局字体,发现可以解决这个问题。2.第二个问题出现虽然使用自定义字体解决了中文文字偏移的问题,但是由于字体文件太大导致性能很不理想。无论是将字体文件放到服务器还是使用 cdn 都不理想。最终找到了fontmin这个插件。这个插件的原理是将字体文件中的字符集进行筛选,生成的新的字体文件中,只包含要使用到的文字字符集。3.最终的方案虽然fontmin可以进行字符集筛选,但是项目中到底需要哪些中文文字是不确定的。但没有关系,经过实验,使用一个只有0这个字符集的字体文件同样可以解决我们最初的问题。下面来看实现步骤。3.1 字体下载到网上下载一个中文字体,这里我使用的是google fonts。先测试一下,直接引用这个字体后,是否可以解决字体偏移。可以的话,进行下一步。3.2 安装 fontmin这里不推荐全局安装,在项目里面安装即可。npm install fontmin -D然后编写配置文件。这里我是写在项目根目录的。// fontmin-config.jsvar Fontmin = require(“fontmin”)var srcPath = “./src/assets/fonts/my-font.ttf” // 字体源文件var destPath = “./src/assets/font-output/” // 输出路径var text = “0” // 筛选的字符集var fontmin = new Fontmin() .src(srcPath) // 输入配置 .use( Fontmin.glyph({ text: text }) ) .dest(destPath) // 输出配置fontmin.run(function(err, files, stream) { if (err) { console.error(err) } console.log(“done”)})然后执行cd your-project-dirnode ./fontmin-config.js3.3 配置 css// global.css@font-face { font-family: “my-font”; src: url("../fonts/my-font.ttf");}html,body{ font-family: “my-font”, sans-serif;} ...

January 9, 2019 · 1 min · jiezi