HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

一个人做了个小程序

uniapp uniCloud

工具类的,大概用了半个月左右的时间,每天下了班到家就整一点,今天决定先上一版了,虽然现在功能还比较少,但以后会更新更多实用和有意思的功能,欢迎大家扫码体验、支持……

工具类的,大概用了半个月左右的时间,每天下了班到家就整一点,今天决定先上一版了,虽然现在功能还比较少,但以后会更新更多实用和有意思的功能,欢迎大家扫码体验、支持……

关于打包后相机相册无法使用以及无法成功更新安装包的问题

相机权限 经验分享

无法使用模块功能首先考虑模块权限是否开启
如果都开启了而且本机测试也没问题,
那么十有八九是因为打包使用公共签名的原因。
改私有签名就可以了。

另外如果无法成功更新安装包也有这个原因
就是之前打包是公有签名,后面打了私有签名包,就无法正常更新。

无法使用模块功能首先考虑模块权限是否开启
如果都开启了而且本机测试也没问题,
那么十有八九是因为打包使用公共签名的原因。
改私有签名就可以了。

另外如果无法成功更新安装包也有这个原因
就是之前打包是公有签名,后面打了私有签名包,就无法正常更新。

招聘,坐标 河南郑州 职位 前端开发工程师 有Uni-APP实际项目开发经验

招聘

岗位职责:
1、负责前端界面的构建,组件的开发,各类交互的设计和实现;
2、参与系统需求分析,设计,编码等开发工作;
3、熟悉、调研公司竞品信息,并从开发角度为公司核心产品完善提出有价值建议;
4、持续为自己负责,为产品负责,为团队负责的精神自我迭代。
岗位要求:
1、1-3年工作经验,计算机专业科班出身 本科及以上学历,优秀毕业生也可以;
2、有Uni-APP实际项目开发经验 ;
2、精通html,css,JavaScript,具有一定框架设计能力,熟练使用git;
3、熟练使用vue前端开发框架及衍生框架;
4、能够提供完善的webapp技术方案,有熟悉的前端工程化经验;
5、有进取心,具有良好的沟通能力 和团队合作精神,具有优秀的分析问题和解决问题的能力;
特别说明
1、公司为自己研发产品,对开发人员综合素养要求偏高,重视职业素养,同样公司也为开发工程师提供了最优的设备,开发环境 ,学习环境;
2、我们是创业公司,产品已经迭代两年多,超过1万项的更新,我们还在持续迭代新零售场景的数智化解决方案,我们希望你是一个有极客精神的,对零售行业数智化有兴趣的开发者;
3、我们认为,工资是你工作的最低汇报,我们希望你在工作中不是只收获了一份儿工资,还能收获能力的成长,精神层次的提升;
4、我们希望你是一个有趣的人,我们一起去做一些有趣的事,让这个社会更美好一些,让我们的技术不单单为自己和家人养家糊口,还为这个社会的其他人创造了价值;
5、用技术为零售企业创造价值,我们不是一句口号,为此我们已经践行了超过1000天;
福利待遇:
1、薪资+社保+国家法定带薪休假+各种团建活动+员工旅游+中午员工餐;
2、大牛带队+广阔的晋升空间。
上班时间:9:30-12:00 13:30-18:30 。周末休息:大小周。
工作地点:郑州市高新区大学科技园(东区) 11号楼。

继续阅读 »

岗位职责:
1、负责前端界面的构建,组件的开发,各类交互的设计和实现;
2、参与系统需求分析,设计,编码等开发工作;
3、熟悉、调研公司竞品信息,并从开发角度为公司核心产品完善提出有价值建议;
4、持续为自己负责,为产品负责,为团队负责的精神自我迭代。
岗位要求:
1、1-3年工作经验,计算机专业科班出身 本科及以上学历,优秀毕业生也可以;
2、有Uni-APP实际项目开发经验 ;
2、精通html,css,JavaScript,具有一定框架设计能力,熟练使用git;
3、熟练使用vue前端开发框架及衍生框架;
4、能够提供完善的webapp技术方案,有熟悉的前端工程化经验;
5、有进取心,具有良好的沟通能力 和团队合作精神,具有优秀的分析问题和解决问题的能力;
特别说明
1、公司为自己研发产品,对开发人员综合素养要求偏高,重视职业素养,同样公司也为开发工程师提供了最优的设备,开发环境 ,学习环境;
2、我们是创业公司,产品已经迭代两年多,超过1万项的更新,我们还在持续迭代新零售场景的数智化解决方案,我们希望你是一个有极客精神的,对零售行业数智化有兴趣的开发者;
3、我们认为,工资是你工作的最低汇报,我们希望你在工作中不是只收获了一份儿工资,还能收获能力的成长,精神层次的提升;
4、我们希望你是一个有趣的人,我们一起去做一些有趣的事,让这个社会更美好一些,让我们的技术不单单为自己和家人养家糊口,还为这个社会的其他人创造了价值;
5、用技术为零售企业创造价值,我们不是一句口号,为此我们已经践行了超过1000天;
福利待遇:
1、薪资+社保+国家法定带薪休假+各种团建活动+员工旅游+中午员工餐;
2、大牛带队+广阔的晋升空间。
上班时间:9:30-12:00 13:30-18:30 。周末休息:大小周。
工作地点:郑州市高新区大学科技园(东区) 11号楼。

收起阅读 »

百度一 29 岁程序员因“篡改数据”被抓

法律科普

近日,中国裁判文书网公布了一起非法控制计算机信息系统、给赌博网站“大开方便之门”的案件,涉及金额达374万元。

据案件显示,在百度时代网络技术(北京)有限公司担任研发工程师的陈某,出生于1992年,利用其职务之便,超越权限,通过篡改数据、编写脚本等方式,违规通过了735个媒体网站账号加入“百度联盟”的申请,致使公司374万元广告分成遭到损害。

经查,陈某在2017年9月至2018年3月的半年间,以审核每个网站300元的价格,据此收受他人给予的人民币235935.4元。

一、为“挣外快”,92年程序员被“拉下水”

根据裁判文书显示,2015年9月16日,陈某入职百度时代网络技术(北京)有限公司,担任研发工程师,所在部门为展示广告平台部的union团队,主要负责展示广告平台部流量端系统的开发工作,权限范围是百度联盟流量端系统的功能开发以及日常上线与维护。

陈某负责该系统的开发与维护工作,无权审核媒体资质,也没有权限对媒体审核服务器计算机系统程序里的数据进行非研发、调试和维护性需要的修改。

2017年8月,自称刘某的男子通过微信联系到陈某,称有“私活”可以“挣外快”,问其能否做快速审核(审核网站是否能有资质承接百度联盟广告),但被陈某拒绝了。

没过多久,刘某从哈尔滨到了北京,在对外经贸大学附近一个饭馆约陈某吃饭,说还是想做审核网站的事情,需要使用百度在职员工的权限,帮助其快速通过审核网站。

这一次,陈某动摇了。他找刘某要了9000元钱,审核每个网站300元,共审核30个。

二、程序员改当“审核员”,篡改数据违规“开绿灯”

百度公司进行网站审核的正常方式是审核部门的员工,依据联盟业务审核标准,对百度联盟风险防控平台待审核联盟潜在客户进行审核。联盟的网站需要通过两道审核,方可上线。

正常流程是客户提交网站先过机器审核策略,机器审核策略过滤掉问题网站(如包含无ICP备案,网址打不开等情况的),将没有触犯机器审核策略的网站推送至人工待审列表中,最终上线需要经过人工审核。

按照流程,百度公司与任何媒体进行广告合作,应该首先由媒体通过流量端系统进行登记网站信息,而后由公司业务审核部门员工进行审核,对符合合作标准的媒体才能通过审核,这些合作媒体后续才能通过百度系统投放线上百度接入的广告,从而获得百度公司的广告分成。

但陈某就职于展示平台广告部,工作职责不包括审核工作。

据裁判文书显示,陈某违规登录联盟风控平台篡改了待审核客户的状态,将不能通过审核的网站直接变更为审核通过状态,从而直接上线。

陈某使用的其中一种方式是通过CURL命令调用流量端系统的媒体审核接口,另一种是通过编写脚本批量操作的方式调用了流量端系统的媒体审核接口,从而篡改数据。

据悉,经过陈某走“绿灯”通过的网站内容,甚至涉及到赌博、彩票等业务。

三、事情败露,陈某当场承认违规操作获利

2018年2月27日,百度公司相关部门发现在风控平台审核媒体时,部分媒体无法进行正常审核操作。

经排查发现,这些媒体在UNION平台中是审核通过状态,但这些媒体在风控平台和UNION平台的审核状态不一致,可能存在人工调用审核接口使这些媒体绕过业审,有异常审核通过的情况存在;

进一步排查分析,发现疑似存在陈某在相关机器上进行了工作职责不相符合的操作,对部分没有经过业审审核的媒体,进行了“媒体审核通过”的操作,异常审核通过的媒体有735个,分成金额3745054元。

2018年3月2日,百度公司相关部门将上述情况以电子邮件形式发送给百度时代网络技术(北京)有限公司职业道德委员会。

公司得知此事后,于2018年3月5日指派相关工作人员找到陈某商谈此事,他当场就承认了通过CURL命令调用流量端系统的媒体审核接口,以及通过编写脚本批量操作的方式调用了流量端系统的媒体审核接口,从而篡改数据,使得部分媒体获利的情况。
公安机关于2018年3月11日接到百度公司报案称公司员工陈某涉嫌破坏计算机信息信息系统犯罪,后于同年4月20日将前往百度公司接受约谈的被告人陈某传唤到案。

四、法院这样判

北京市海淀区人民法院一审认为,陈某违反国家规定,对计算机信息系统中存储、处理的数据进行修改,后果特别严重,其行为已构成破坏计算机信息系统罪,应予惩处。

法院指出,被告人陈某利用其工作便利,在没有得到单位授权,也不是基于对单位计算机信息系统进行研发、维护、调试等工作需要的情况下,而是为了谋取其个人私利,超越其工作权限,采用技术手段擅自调用媒体接口,违规使大量网站通过媒体资质审核,将待审核的数据变更为审核通过的数据,系违规修改百度时代网络技术(北京)有限公司计算机信息系统内所存储、处理的相应分类数据的范围,因此该行为符合破坏计算机信息系统罪中对破坏行为的定义。

鉴于被告人陈某犯罪以后主动投案,到案后能如实供述其所犯罪行,系自首,且积极退缴全部违法所得,并赔偿了所在单位因本案而支出的信息技术服务费,亦取得了所在单位的谅解,有较好的悔罪表现,故本院对其依法减轻处罚。

最终,被告人陈某以犯破坏计算机信息系统罪,被判处有期徒刑一年九个月,并没收所有违法所得。

【参考链接】:https://wenshu.court.gov.cn/website/wenshu/181107ANFZ0BXSK4/index.html?docId=07dfdd695dd945c49f1cacd7000e6e91

————————————————
版权声明:本文为CSDN博主「CSDN 程序人生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/csdnsevenn/article/details/114683563

此文章转载自CSDN博主「CSDN 程序人生」的原创文章,如有不当联系邮箱:pufa@dcloud.io 。

继续阅读 »

近日,中国裁判文书网公布了一起非法控制计算机信息系统、给赌博网站“大开方便之门”的案件,涉及金额达374万元。

据案件显示,在百度时代网络技术(北京)有限公司担任研发工程师的陈某,出生于1992年,利用其职务之便,超越权限,通过篡改数据、编写脚本等方式,违规通过了735个媒体网站账号加入“百度联盟”的申请,致使公司374万元广告分成遭到损害。

经查,陈某在2017年9月至2018年3月的半年间,以审核每个网站300元的价格,据此收受他人给予的人民币235935.4元。

一、为“挣外快”,92年程序员被“拉下水”

根据裁判文书显示,2015年9月16日,陈某入职百度时代网络技术(北京)有限公司,担任研发工程师,所在部门为展示广告平台部的union团队,主要负责展示广告平台部流量端系统的开发工作,权限范围是百度联盟流量端系统的功能开发以及日常上线与维护。

陈某负责该系统的开发与维护工作,无权审核媒体资质,也没有权限对媒体审核服务器计算机系统程序里的数据进行非研发、调试和维护性需要的修改。

2017年8月,自称刘某的男子通过微信联系到陈某,称有“私活”可以“挣外快”,问其能否做快速审核(审核网站是否能有资质承接百度联盟广告),但被陈某拒绝了。

没过多久,刘某从哈尔滨到了北京,在对外经贸大学附近一个饭馆约陈某吃饭,说还是想做审核网站的事情,需要使用百度在职员工的权限,帮助其快速通过审核网站。

这一次,陈某动摇了。他找刘某要了9000元钱,审核每个网站300元,共审核30个。

二、程序员改当“审核员”,篡改数据违规“开绿灯”

百度公司进行网站审核的正常方式是审核部门的员工,依据联盟业务审核标准,对百度联盟风险防控平台待审核联盟潜在客户进行审核。联盟的网站需要通过两道审核,方可上线。

正常流程是客户提交网站先过机器审核策略,机器审核策略过滤掉问题网站(如包含无ICP备案,网址打不开等情况的),将没有触犯机器审核策略的网站推送至人工待审列表中,最终上线需要经过人工审核。

按照流程,百度公司与任何媒体进行广告合作,应该首先由媒体通过流量端系统进行登记网站信息,而后由公司业务审核部门员工进行审核,对符合合作标准的媒体才能通过审核,这些合作媒体后续才能通过百度系统投放线上百度接入的广告,从而获得百度公司的广告分成。

但陈某就职于展示平台广告部,工作职责不包括审核工作。

据裁判文书显示,陈某违规登录联盟风控平台篡改了待审核客户的状态,将不能通过审核的网站直接变更为审核通过状态,从而直接上线。

陈某使用的其中一种方式是通过CURL命令调用流量端系统的媒体审核接口,另一种是通过编写脚本批量操作的方式调用了流量端系统的媒体审核接口,从而篡改数据。

据悉,经过陈某走“绿灯”通过的网站内容,甚至涉及到赌博、彩票等业务。

三、事情败露,陈某当场承认违规操作获利

2018年2月27日,百度公司相关部门发现在风控平台审核媒体时,部分媒体无法进行正常审核操作。

经排查发现,这些媒体在UNION平台中是审核通过状态,但这些媒体在风控平台和UNION平台的审核状态不一致,可能存在人工调用审核接口使这些媒体绕过业审,有异常审核通过的情况存在;

进一步排查分析,发现疑似存在陈某在相关机器上进行了工作职责不相符合的操作,对部分没有经过业审审核的媒体,进行了“媒体审核通过”的操作,异常审核通过的媒体有735个,分成金额3745054元。

2018年3月2日,百度公司相关部门将上述情况以电子邮件形式发送给百度时代网络技术(北京)有限公司职业道德委员会。

公司得知此事后,于2018年3月5日指派相关工作人员找到陈某商谈此事,他当场就承认了通过CURL命令调用流量端系统的媒体审核接口,以及通过编写脚本批量操作的方式调用了流量端系统的媒体审核接口,从而篡改数据,使得部分媒体获利的情况。
公安机关于2018年3月11日接到百度公司报案称公司员工陈某涉嫌破坏计算机信息信息系统犯罪,后于同年4月20日将前往百度公司接受约谈的被告人陈某传唤到案。

四、法院这样判

北京市海淀区人民法院一审认为,陈某违反国家规定,对计算机信息系统中存储、处理的数据进行修改,后果特别严重,其行为已构成破坏计算机信息系统罪,应予惩处。

法院指出,被告人陈某利用其工作便利,在没有得到单位授权,也不是基于对单位计算机信息系统进行研发、维护、调试等工作需要的情况下,而是为了谋取其个人私利,超越其工作权限,采用技术手段擅自调用媒体接口,违规使大量网站通过媒体资质审核,将待审核的数据变更为审核通过的数据,系违规修改百度时代网络技术(北京)有限公司计算机信息系统内所存储、处理的相应分类数据的范围,因此该行为符合破坏计算机信息系统罪中对破坏行为的定义。

鉴于被告人陈某犯罪以后主动投案,到案后能如实供述其所犯罪行,系自首,且积极退缴全部违法所得,并赔偿了所在单位因本案而支出的信息技术服务费,亦取得了所在单位的谅解,有较好的悔罪表现,故本院对其依法减轻处罚。

最终,被告人陈某以犯破坏计算机信息系统罪,被判处有期徒刑一年九个月,并没收所有违法所得。

【参考链接】:https://wenshu.court.gov.cn/website/wenshu/181107ANFZ0BXSK4/index.html?docId=07dfdd695dd945c49f1cacd7000e6e91

————————————————
版权声明:本文为CSDN博主「CSDN 程序人生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/csdnsevenn/article/details/114683563

此文章转载自CSDN博主「CSDN 程序人生」的原创文章,如有不当联系邮箱:pufa@dcloud.io 。

收起阅读 »

HBuilderX云打包ios证书的获取方法

iOS打包 iOS证书 分享链接

使用HBuilderX进行云打包的时候,假如打包的是ios项目,则需要自有证书。

平时这个证书是需要在mac电脑申请的,而我们没有mac电脑,则我们可以使用香蕉云编来生成ios证书:

https://www.yunedit.com/xueyuan/jx/createcert

按照它里面的流程说明创建,就可以完成证书的创建了。

继续阅读 »

使用HBuilderX进行云打包的时候,假如打包的是ios项目,则需要自有证书。

平时这个证书是需要在mac电脑申请的,而我们没有mac电脑,则我们可以使用香蕉云编来生成ios证书:

https://www.yunedit.com/xueyuan/jx/createcert

按照它里面的流程说明创建,就可以完成证书的创建了。

收起阅读 »

万岳知识付费系统更新内容 v 1.0.6

技术分享 源码分享 开源 uniapp

仓库地址

更新内容:

    为方便新老用户使用,我们将uni-app仓库(移动端)和php仓库(后端+web)合并为一个仓库,方便大家的整合使用。

现有功能:

项目说明(如果对你有用,请点亮右上角的Star!)

部署文档|发行步骤|常见问题|升级日志

系统演示

展示图

目录结构

  • 前端代码 knowledge_uni_app目录
  • 后台代码 knowledge_admin目录

Web版地址

项目介绍

万岳知识付费系统打造沉浸式学习体验,提升教学质量,还原真实课堂。知识付费功能包含热门精选、在线直播、付费视频、付费音频、付费阅读等营销功能,实现用户快速裂变。提高用户工作效率和收入是成为知识付费的刚需,可以从海量信息中寻找到适合自身的产品,利用碎片化时间和少许资金就能获得自己需要的信息。

万岳知识付费深刻理解用户诉求,紧盯市场需求。帮助大家低成本高效率体验知识付费平台,以利用互联网让人们生活更美好为使命,精益求精,创新研发,为客户创造更多价值!

  • 所有使用到的框架或者组件都是基于开源项目,代码保证100%开源。
  • 系统功能通用,无论是个人还是企业都可以利用该系统快速搭建一个属于自己的知识付费系统。

系统前端采用uni-app+socket.io+WebRtc核心技术, 接口采用PhalApi框架配合TP5.1框架ThinkCMF,系统功能如下:

功能展示

展示图展示图展示图展示图展示图

开源版使用须知

  • 允许用于个人学习、教学案例

  • 开源版不适合商用,商用请购买商业版

  • 禁止将本项目的代码和资源进行任何形式的出售,产生的一切任何后果责任由侵权者自负

商业合作

  • 如果你想使用功能更完善的知识付费系统,请联系QQ客服: 2415408120 获取专业版
  • 如果您想基于知识付费系统进行定制开发,我们提供有偿定制服务支持!
  • 其他合作模式不限,欢迎来撩!
  • 官网地址:http://www.sdwanyue.com

联系我们(加客服经理微信或QQ,免费获取sql脚本)

QQ:2415408120

万岳在线教育讨论群可加 QQ群:995910672

> QQ群:995910672

展示图

继续阅读 »

仓库地址

更新内容:

    为方便新老用户使用,我们将uni-app仓库(移动端)和php仓库(后端+web)合并为一个仓库,方便大家的整合使用。

现有功能:

项目说明(如果对你有用,请点亮右上角的Star!)

部署文档|发行步骤|常见问题|升级日志

系统演示

展示图

目录结构

  • 前端代码 knowledge_uni_app目录
  • 后台代码 knowledge_admin目录

Web版地址

项目介绍

万岳知识付费系统打造沉浸式学习体验,提升教学质量,还原真实课堂。知识付费功能包含热门精选、在线直播、付费视频、付费音频、付费阅读等营销功能,实现用户快速裂变。提高用户工作效率和收入是成为知识付费的刚需,可以从海量信息中寻找到适合自身的产品,利用碎片化时间和少许资金就能获得自己需要的信息。

万岳知识付费深刻理解用户诉求,紧盯市场需求。帮助大家低成本高效率体验知识付费平台,以利用互联网让人们生活更美好为使命,精益求精,创新研发,为客户创造更多价值!

  • 所有使用到的框架或者组件都是基于开源项目,代码保证100%开源。
  • 系统功能通用,无论是个人还是企业都可以利用该系统快速搭建一个属于自己的知识付费系统。

系统前端采用uni-app+socket.io+WebRtc核心技术, 接口采用PhalApi框架配合TP5.1框架ThinkCMF,系统功能如下:

功能展示

展示图展示图展示图展示图展示图

开源版使用须知

  • 允许用于个人学习、教学案例

  • 开源版不适合商用,商用请购买商业版

  • 禁止将本项目的代码和资源进行任何形式的出售,产生的一切任何后果责任由侵权者自负

商业合作

  • 如果你想使用功能更完善的知识付费系统,请联系QQ客服: 2415408120 获取专业版
  • 如果您想基于知识付费系统进行定制开发,我们提供有偿定制服务支持!
  • 其他合作模式不限,欢迎来撩!
  • 官网地址:http://www.sdwanyue.com

联系我们(加客服经理微信或QQ,免费获取sql脚本)

QQ:2415408120

万岳在线教育讨论群可加 QQ群:995910672

> QQ群:995910672

展示图

收起阅读 »

webview使用uniapp项目开发无法使用uni.postMessage(踩坑经验分享)

Webview uniapp 经验分享

1、使用uniapp项目写H5 webview,使用hello uniapp的模板,按照webview文档里的源码往template.h5.html里面写入相关内容。
2、引入的https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js脚本,它这个地方是个坑。你要手动改源码。uni.webview.js文件里面注册的就是uni对象。被uniapp项目自带的uni对象覆盖了,我就是把源码里面注册uni对象换了个名字(webUni)就好了。
END:这里把我自己改好的js文件贴上来,包括template.h5.html文件,可以直接使用webUni.postMessage方法。

继续阅读 »

1、使用uniapp项目写H5 webview,使用hello uniapp的模板,按照webview文档里的源码往template.h5.html里面写入相关内容。
2、引入的https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js脚本,它这个地方是个坑。你要手动改源码。uni.webview.js文件里面注册的就是uni对象。被uniapp项目自带的uni对象覆盖了,我就是把源码里面注册uni对象换了个名字(webUni)就好了。
END:这里把我自己改好的js文件贴上来,包括template.h5.html文件,可以直接使用webUni.postMessage方法。

收起阅读 »

分享一个处理异步任务的插件,方便的一比

异步方法 异步执行 登录 经验分享

github链接:https://github.com/1977474741/vue-custom-hooks

这个东西可以解决业务页面里需要同时监听多个全局状态的问题,首次进入小程序需要异步的去获取数据,它可以告诉业务页面,东西我已经拿到啦,可以做某些事了!

继续阅读 »

github链接:https://github.com/1977474741/vue-custom-hooks

这个东西可以解决业务页面里需要同时监听多个全局状态的问题,首次进入小程序需要异步的去获取数据,它可以告诉业务页面,东西我已经拿到啦,可以做某些事了!

收起阅读 »

需要下拉刷新 上拉加载的可以去看看

上拉加载 下拉刷新

简单易上手的下拉刷新 上拉加载

https://ext.dcloud.net.cn/plugin?id=4489

简单易上手的下拉刷新 上拉加载

https://ext.dcloud.net.cn/plugin?id=4489

hbuilderx内置Universal Links自动生成指南

Universal Links自动生成指南

背景介绍:

Universal Link是苹果在WWDC 2015上提出的iOS 9的新特性之一。此特性类似于深层链接,并能够方便地通过打开一个Https链接来直接启动您的客户端应用(手机有安装App)。对比以往所使用的URLSheme, 这种新特性在实现web-app的无缝链接时,能够提供极佳的用户体验。
使用前请阅读苹果官方文档

由于苹果iOS 13系统版本安全升级,微信SDK1.8.6版本要求支持Universal Links方式跳转,以便进行合法性校验,提升安全性。更多详情请参考微信官方说明

大白话:以前你的APP要打开其他APP是通过URLScheme实现,后来苹果提出用Https链接来启动,手机上对应的app(已安装),更方便与web-app的无缝对接。微信响应了这个方案。所以大家开发的APP无论是微信登陆、微信支付,还是微信分享等一切会跳转到微信,再跳回来的场景,需要提供这个链接。要不然你的应用打开了微信,微信就打不开你的应用。

如果不配置通用链接,使用新版本HX提交云端打包会失败,提示以下错误信息:

Error code = -5000  
Error message:   
Error: not set parameter 'UniversalLinks' @'oauth-weixin'
传统方式配置通用链接需要:
  1. 在苹果开发者中心:开启Associated Domains服务
  2. 获取相关参数,手动创建apple-app-site-association文件
  3. 部署apple-app-site-association文件到自己的云服务器,配置SSL证书解析域名
  4. 然后手动在manifest.json中配置Associated Domains(域名)
  5. 粘贴通用链接到对应权限模块
  6. 在微信开放平台配置通用链接

其中需要注意的细节较多,且调试起来困难繁琐,困扰了大量开发者。

现在通过HbuilderX(3.1.9版起)云打包,支持自动生成apple-app-site-association文件,并自动托管到:自带cdn、ssl等服务的“免费”的云服务空间uniCloud的前端网页托管,自动完成manifest.json中的相关配置。用自动化技术替代了,如上所示传统方式令人苦恼的(2-5)4个步骤;只需如下三步直接搞定通用链接。

第一步:开启Associated Domains服务

登录苹果开发者网站,在“Certificates, Identifiers & Profiles”页面选择“Identifiers”中选择对应的App ID,确保开启Associated Domains服务


开启Associated Domains服务后需要重新生成profile文件,提交云端打包时使用

第二步骤 自动生成通用连接(Universal Links)

打开项目的manifest.json文件,在“(App) SDK配置”项中的微信登录(微信分享、微信支付)下的“iOS平台通用链接(Universal Links)”中,
点击如图所示【自动生成】期间会校验你是否已经开通uniCloud(阿里云版)云服务空间和开通前端网页托管
,按提示完成操作即可。


第三步:在微信开放平台配置通用链接

打开微信开发平台,在“管理中心”页面的“移动应用”下找到已经申请的应用(没有申请应用请点击“创建移动应用”新建应用),点击“查看”打开应用详情页面。
在“开发信息”栏后点击修改,在“iOS应用”下的“Universal Links”项中配置应用的通用链接,如下图所示:

其他

客户端处理通用链接。可通过5+ API的plus.runtime.launcher判断应用启动来源,如果其值为"uniLink"则表示通过通用链接启动应。这时可通过5+ API的plus.runtime.arguments获取启动参数,通用链接启动的情况将返回完整的通用链接地址。
例:HBuilderX中自带的默认真机运行基座HBuilderX注册的通用链接:https://demo.dcloud.net.cn/ulink/

假如你比较关心通用链接的生成原理,他的逻辑流程为:

  1. 选择云空间获取云空间的默认/自定义域名
  2. 按提前制定的规范(uni-universallinks/DCloud appid)拼接URL
  3. 根据现有参数自动生成通用链接相关参数到manifest.json
  4. 发起云打包时读取证书的profile文件生成apple-app-site-association并部署到前面选定的云空间根目录的.well-known目录下

注意事项:

  • 通用链接指向的路径可以为空,他只是一种信息传递方式。可以简单地理解为:通过解析URL的“/”后的参数到apple-app-site-association中找到指定的包名并唤醒对应的APP
  • 通用链接内容保存在manifest.json中云打包后生效,被手机读取的时机是应用被安装的时候。如果你的通用链接内容有变化,你需要重新提交云打包,并重新安装一次应用才能生效
  • 通用链接最终托管在服务端,如有变动注意缓存的清理,例如尝试重启手机等操作

如果你是本地离线打包或者由于某种原因你需要用传统的方式:私有化部署服务器来托管apple-app-site-association文件创建通用链接。你仍然可以通过手动配置manifest.json实现。详情:https://ask.dcloud.net.cn/article/36393#unilink

继续阅读 »

背景介绍:

Universal Link是苹果在WWDC 2015上提出的iOS 9的新特性之一。此特性类似于深层链接,并能够方便地通过打开一个Https链接来直接启动您的客户端应用(手机有安装App)。对比以往所使用的URLSheme, 这种新特性在实现web-app的无缝链接时,能够提供极佳的用户体验。
使用前请阅读苹果官方文档

由于苹果iOS 13系统版本安全升级,微信SDK1.8.6版本要求支持Universal Links方式跳转,以便进行合法性校验,提升安全性。更多详情请参考微信官方说明

大白话:以前你的APP要打开其他APP是通过URLScheme实现,后来苹果提出用Https链接来启动,手机上对应的app(已安装),更方便与web-app的无缝对接。微信响应了这个方案。所以大家开发的APP无论是微信登陆、微信支付,还是微信分享等一切会跳转到微信,再跳回来的场景,需要提供这个链接。要不然你的应用打开了微信,微信就打不开你的应用。

如果不配置通用链接,使用新版本HX提交云端打包会失败,提示以下错误信息:

Error code = -5000  
Error message:   
Error: not set parameter 'UniversalLinks' @'oauth-weixin'
传统方式配置通用链接需要:
  1. 在苹果开发者中心:开启Associated Domains服务
  2. 获取相关参数,手动创建apple-app-site-association文件
  3. 部署apple-app-site-association文件到自己的云服务器,配置SSL证书解析域名
  4. 然后手动在manifest.json中配置Associated Domains(域名)
  5. 粘贴通用链接到对应权限模块
  6. 在微信开放平台配置通用链接

其中需要注意的细节较多,且调试起来困难繁琐,困扰了大量开发者。

现在通过HbuilderX(3.1.9版起)云打包,支持自动生成apple-app-site-association文件,并自动托管到:自带cdn、ssl等服务的“免费”的云服务空间uniCloud的前端网页托管,自动完成manifest.json中的相关配置。用自动化技术替代了,如上所示传统方式令人苦恼的(2-5)4个步骤;只需如下三步直接搞定通用链接。

第一步:开启Associated Domains服务

登录苹果开发者网站,在“Certificates, Identifiers & Profiles”页面选择“Identifiers”中选择对应的App ID,确保开启Associated Domains服务


开启Associated Domains服务后需要重新生成profile文件,提交云端打包时使用

第二步骤 自动生成通用连接(Universal Links)

打开项目的manifest.json文件,在“(App) SDK配置”项中的微信登录(微信分享、微信支付)下的“iOS平台通用链接(Universal Links)”中,
点击如图所示【自动生成】期间会校验你是否已经开通uniCloud(阿里云版)云服务空间和开通前端网页托管
,按提示完成操作即可。


第三步:在微信开放平台配置通用链接

打开微信开发平台,在“管理中心”页面的“移动应用”下找到已经申请的应用(没有申请应用请点击“创建移动应用”新建应用),点击“查看”打开应用详情页面。
在“开发信息”栏后点击修改,在“iOS应用”下的“Universal Links”项中配置应用的通用链接,如下图所示:

其他

客户端处理通用链接。可通过5+ API的plus.runtime.launcher判断应用启动来源,如果其值为"uniLink"则表示通过通用链接启动应。这时可通过5+ API的plus.runtime.arguments获取启动参数,通用链接启动的情况将返回完整的通用链接地址。
例:HBuilderX中自带的默认真机运行基座HBuilderX注册的通用链接:https://demo.dcloud.net.cn/ulink/

假如你比较关心通用链接的生成原理,他的逻辑流程为:

  1. 选择云空间获取云空间的默认/自定义域名
  2. 按提前制定的规范(uni-universallinks/DCloud appid)拼接URL
  3. 根据现有参数自动生成通用链接相关参数到manifest.json
  4. 发起云打包时读取证书的profile文件生成apple-app-site-association并部署到前面选定的云空间根目录的.well-known目录下

注意事项:

  • 通用链接指向的路径可以为空,他只是一种信息传递方式。可以简单地理解为:通过解析URL的“/”后的参数到apple-app-site-association中找到指定的包名并唤醒对应的APP
  • 通用链接内容保存在manifest.json中云打包后生效,被手机读取的时机是应用被安装的时候。如果你的通用链接内容有变化,你需要重新提交云打包,并重新安装一次应用才能生效
  • 通用链接最终托管在服务端,如有变动注意缓存的清理,例如尝试重启手机等操作

如果你是本地离线打包或者由于某种原因你需要用传统的方式:私有化部署服务器来托管apple-app-site-association文件创建通用链接。你仍然可以通过手动配置manifest.json实现。详情:https://ask.dcloud.net.cn/article/36393#unilink

收起阅读 »

popGesture触发机制

全局manifest.json设置了close
安卓会走init下的beforeback回调和plus.webview.currentWebview().addEventListener("close", function (e) {})

单页面设置popGesture,iOS触发机制
1:none
触发init下的beforeback回调和plus.webview.currentWebview().addEventListener("close", function (e) {})
2、hide
触发plus.webview.currentWebview().addEventListener("hide", function (e) {})和plus.webview.currentWebview().addEventListener("close", function (e) {})
3、不设置或者设置成close
不会触发

继续阅读 »

全局manifest.json设置了close
安卓会走init下的beforeback回调和plus.webview.currentWebview().addEventListener("close", function (e) {})

单页面设置popGesture,iOS触发机制
1:none
触发init下的beforeback回调和plus.webview.currentWebview().addEventListener("close", function (e) {})
2、hide
触发plus.webview.currentWebview().addEventListener("hide", function (e) {})和plus.webview.currentWebview().addEventListener("close", function (e) {})
3、不设置或者设置成close
不会触发

收起阅读 »

ios打包报错opendir([PackagePath]/XArchive/exportArchive): failed to open dir: No such file or directory

问题:ios打包失败,
[HBuilder] 22:52:54.501 项目 newapp [H50A8232B]的打包状态:
[HBuilder] 22:52:54.501 时间: 2021-03-17 22:52:00 类型: iOS Appstore 打包失败 错误日志: https://xxx/errorLog/xxxxx
[HBuilder] 22:52:54.501 苹果已废弃UIWebview,新应用使用UIWebview将无法提交苹果应用市场,详情查看
解决:因为更新了最新版本3.1.5.20210316,后面回退到上一个版本,再次打包,显示成功。不知道3.1.5.20210316版本更新什么导致失败的

继续阅读 »

问题:ios打包失败,
[HBuilder] 22:52:54.501 项目 newapp [H50A8232B]的打包状态:
[HBuilder] 22:52:54.501 时间: 2021-03-17 22:52:00 类型: iOS Appstore 打包失败 错误日志: https://xxx/errorLog/xxxxx
[HBuilder] 22:52:54.501 苹果已废弃UIWebview,新应用使用UIWebview将无法提交苹果应用市场,详情查看
解决:因为更新了最新版本3.1.5.20210316,后面回退到上一个版本,再次打包,显示成功。不知道3.1.5.20210316版本更新什么导致失败的

收起阅读 »