HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

因上传用户图片,违反隐私策略 被Google play下架

GooglePlay下架


实际上检查代码不存在任何上传文件代码,本身就是蓝牙本地软件,不存在互联网交互


实际上检查代码不存在任何上传文件代码,本身就是蓝牙本地软件,不存在互联网交互

希望打印日志增加如下功能。

新需求

希望打印日志增加对
console.group 和 groupCollapsed 的支持
然后在控制台显示的时候也支持 折叠 的功能。

希望打印日志增加对
console.group 和 groupCollapsed 的支持
然后在控制台显示的时候也支持 折叠 的功能。

解决你的图标难!成功移植拥有7000+图标的可商用图标项目:Material Design Icons 图标库

iconfont icon 字体图标绘制 搜索图标 图标

插件简介

本插件为非官方插件,原作者为 Pictogrammers 。由于插件作者常年使用Vuetify.js框架进行前端开发,发现该框架使用的Material Design Icons图标库资源丰富拥有7000+图标、风格基本统一、还很易用,后来迁移到uni-app进行小程序开发时一直苦于没有找到跟Material Design Icons比拟的图标库(尽管阿里巴巴图标矢量库等图标库资源远比该库丰富,但里面有着大量样式或使用场景重复或相似的图标),故自己将其移植过来了。

插件地址

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

示例预览

示例预览图

继续阅读 »

插件简介

本插件为非官方插件,原作者为 Pictogrammers 。由于插件作者常年使用Vuetify.js框架进行前端开发,发现该框架使用的Material Design Icons图标库资源丰富拥有7000+图标、风格基本统一、还很易用,后来迁移到uni-app进行小程序开发时一直苦于没有找到跟Material Design Icons比拟的图标库(尽管阿里巴巴图标矢量库等图标库资源远比该库丰富,但里面有着大量样式或使用场景重复或相似的图标),故自己将其移植过来了。

插件地址

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

示例预览

示例预览图

收起阅读 »

uniapp关于微信小程序新隐私政策的临时解决方案------已发布插件

隐私政策 微信小程序

简单的说一下能解决 什么问题呢?

首先,uniapp目前还没有同步更新微信小程序新隐私政策的button属性和api接口。
然后,经过查阅文档和社区,再加上不断踩坑,总结出来的一个uniapp官方没有更新前的一个临时解决方案。

首先你的确保你了解过微信小程序的新隐私政策

小程序新版隐私政策

这个就要求必须要先在小程序隐私政策中添加相关隐私接口信息,通过审核并且等待其真实生效后,才能调用。这个生效时间大概在审核通过后,15分钟以上。

插件市场地址

jade-mp-privacy小程序新隐私政策插件

继续阅读 »

简单的说一下能解决 什么问题呢?

首先,uniapp目前还没有同步更新微信小程序新隐私政策的button属性和api接口。
然后,经过查阅文档和社区,再加上不断踩坑,总结出来的一个uniapp官方没有更新前的一个临时解决方案。

首先你的确保你了解过微信小程序的新隐私政策

小程序新版隐私政策

这个就要求必须要先在小程序隐私政策中添加相关隐私接口信息,通过审核并且等待其真实生效后,才能调用。这个生效时间大概在审核通过后,15分钟以上。

插件市场地址

jade-mp-privacy小程序新隐私政策插件

收起阅读 »

vue3 cli es6转es5

vue_cli 兼容性 浏览器兼容 h5

用各种方法legacyPlugin、babel、polyfill(polyfill解释不了可选链)等等、都转不了,在旧版本浏览器上报错
?. 、import.meta等等

官方又说自带es6转es5,又跑去下载老版本的hbuilderX,搞这搞那,没有任何作用,非常抓狂

最后发现uniapp自己在编译时带了legacyPlugin,并且可以配置,问题解决

vite.config.ts

        uni({  
            viteLegacyOptions: {  
                targets: ['Chrome > 70']  
            }  
        })

官方文档没有任何提及,这方法还是突发奇想,点到uni里面看抛出的ts才看到并尝试的,并且刚巧build了一版发到服务器上试、因为这个编译只在build时生效,特么开发模式下该报错还是报错,这让我怎么测试、心态都崩了。。

DEBUG全靠猜,唉~

继续阅读 »

用各种方法legacyPlugin、babel、polyfill(polyfill解释不了可选链)等等、都转不了,在旧版本浏览器上报错
?. 、import.meta等等

官方又说自带es6转es5,又跑去下载老版本的hbuilderX,搞这搞那,没有任何作用,非常抓狂

最后发现uniapp自己在编译时带了legacyPlugin,并且可以配置,问题解决

vite.config.ts

        uni({  
            viteLegacyOptions: {  
                targets: ['Chrome > 70']  
            }  
        })

官方文档没有任何提及,这方法还是突发奇想,点到uni里面看抛出的ts才看到并尝试的,并且刚巧build了一版发到服务器上试、因为这个编译只在build时生效,特么开发模式下该报错还是报错,这让我怎么测试、心态都崩了。。

DEBUG全靠猜,唉~

收起阅读 »

今天下午发生一个诡异的问题,不同分类的翻页参数不重新初始化,而是选择加 1

不知道各位有没有收到反馈,我这边至少有 4 台设备发现了这样的形状,页面中 tab 切换分类的时候,翻页的参数选择了点击+1,而不是初始化;还在查代码的时候,有恢复了正常。
难道 uniapp 公司能远控?

不知道各位有没有收到反馈,我这边至少有 4 台设备发现了这样的形状,页面中 tab 切换分类的时候,翻页的参数选择了点击+1,而不是初始化;还在查代码的时候,有恢复了正常。
难道 uniapp 公司能远控?

微信小程序隐私协议最新弹框解决方案

隐私协议 微信小程序

公众号文章:
https://mp.weixin.qq.com/s?__biz=MzIyNjE5ODA5NA==&mid=2247487487&idx=1&sn=36269ceb84a1ffb0a91f10a711b274cb&chksm=e87558dedf02d1c867f0a9fad1344d7bd7dc5542849543caf824051d56b89763b9a3e242efca#rd

代码片段:
https://developers.weixin.qq.com/s/VGANOSmb7VKl

继续阅读 »

公众号文章:
https://mp.weixin.qq.com/s?__biz=MzIyNjE5ODA5NA==&mid=2247487487&idx=1&sn=36269ceb84a1ffb0a91f10a711b274cb&chksm=e87558dedf02d1c867f0a9fad1344d7bd7dc5542849543caf824051d56b89763b9a3e242efca#rd

代码片段:
https://developers.weixin.qq.com/s/VGANOSmb7VKl

收起阅读 »

【解决】uni.scanCode苹果(ios)黑屏,真机测试扫码黑屏问题

扫码

hbuilderx版本:3.5.3

原因:打包会使用新版本的sdk来打包

解决方式1:在manifest.json源码视图里面一下地方加入Barcode和Camera

{  
    "app-plus" : {  
        "modules" : {  
            "Barcode" : {},  
            "Camera" : {}  
        }  
    }  
}

解决方式2:升级hbuilderx版本,勾选以下两个

↓↓↓ 各位大佬点点赞

继续阅读 »

hbuilderx版本:3.5.3

原因:打包会使用新版本的sdk来打包

解决方式1:在manifest.json源码视图里面一下地方加入Barcode和Camera

{  
    "app-plus" : {  
        "modules" : {  
            "Barcode" : {},  
            "Camera" : {}  
        }  
    }  
}

解决方式2:升级hbuilderx版本,勾选以下两个

↓↓↓ 各位大佬点点赞

收起阅读 »

【TabBar】根据角色展示不同的数量或内容解决方案

tabbar

官方文档:https://uniapp.dcloud.net.cn/api/ui/tabbar.html#settabbaritem

看不懂的看我的解决方案:

1、pages.json里面按照要求配置好最全数量的tabbar,一定要按照最大数量配置,切记!!!并且此时对应的tabbar页面是公共的tabbar(最大数量为5个)例如ont,two,three。

2、将不同角色的页面提前创建好,写好自己的业务内容,此页面无需在 pages.json 中配置,作为一个组件引入即可。

3、在所有进入tabbar页面的url处一定要处理好标识,比如A角色=1,B角色=2。然后使用 switchTab 跳转对应的tabbar公共页面。

4、在公共的tabbar页面根据角色标识判断展示对应的组件(此组件为第2步创建的页面)。

5、在所有公共的tabbar页面的 onShow 函数中处理tabbar,以下是我的伪代码:

<script setup name="">  
import { onShow } from '@dcloudio/uni-app';  
import storage from '@/common/utils/storage.js';  

onShow(() => {  
    console.log(storage.getStorageSync('role'));  
    uni.setTabBarItem({  
        index: 0,  
        text: 'Home',  
        // pagePath: '/pages/tabbar/tea-home',  
        iconPath: '/static/images/tabbar/home.png',  
        selectedIconPath: '/static/images/tabbar/home-active.png',  
        complete: (e) => {  
            console.log('======= Home', e);  
        }  
    });  
});  
</script>

6、关于我为什么不使用 pagePath 这个属性直接替代页面,有三点给大家解释下:第一点:H5页面完全失效,刷新会失去tabbar;第二点:APP中系统杀死APP后再次进入会丢失tabbar;第三点:如果是自定义tabbar会有闪烁的情况。

7、大家也可以尝试其他方案,这只是本人遇到的问题及解决思路。

继续阅读 »

官方文档:https://uniapp.dcloud.net.cn/api/ui/tabbar.html#settabbaritem

看不懂的看我的解决方案:

1、pages.json里面按照要求配置好最全数量的tabbar,一定要按照最大数量配置,切记!!!并且此时对应的tabbar页面是公共的tabbar(最大数量为5个)例如ont,two,three。

2、将不同角色的页面提前创建好,写好自己的业务内容,此页面无需在 pages.json 中配置,作为一个组件引入即可。

3、在所有进入tabbar页面的url处一定要处理好标识,比如A角色=1,B角色=2。然后使用 switchTab 跳转对应的tabbar公共页面。

4、在公共的tabbar页面根据角色标识判断展示对应的组件(此组件为第2步创建的页面)。

5、在所有公共的tabbar页面的 onShow 函数中处理tabbar,以下是我的伪代码:

<script setup name="">  
import { onShow } from '@dcloudio/uni-app';  
import storage from '@/common/utils/storage.js';  

onShow(() => {  
    console.log(storage.getStorageSync('role'));  
    uni.setTabBarItem({  
        index: 0,  
        text: 'Home',  
        // pagePath: '/pages/tabbar/tea-home',  
        iconPath: '/static/images/tabbar/home.png',  
        selectedIconPath: '/static/images/tabbar/home-active.png',  
        complete: (e) => {  
            console.log('======= Home', e);  
        }  
    });  
});  
</script>

6、关于我为什么不使用 pagePath 这个属性直接替代页面,有三点给大家解释下:第一点:H5页面完全失效,刷新会失去tabbar;第二点:APP中系统杀死APP后再次进入会丢失tabbar;第三点:如果是自定义tabbar会有闪烁的情况。

7、大家也可以尝试其他方案,这只是本人遇到的问题及解决思路。

收起阅读 »

uniapp+uniCloud全栈开发小程序总结,效率的确是快

前端


界面
vue语法配合flex布局,轻松完成界面开发。

服务端


相信对前端工程师来说,以前需要做全栈开发的话,需要硬着头皮学一门后端语言。uniCloud的出现,让前端开发可以使用熟悉的javascript语言来做后端服务开发,本次小程序的试车,就体验了一把uniCloud的方便快捷。

1、关于数据库
uniCloud提供了一个 JSON 格式的文档型数据库。顾名思义,数据库中的每条记录都是一个 JSON 格式的文档。
每张表/集合,都有一个表名*.schema.json的文件,来描述表的信息、字段的信息。可以很方便的定义表的字段、字段类型、表的权限和字段的权限。
做项目常用的表格官方已经提供了很多openDB模板,直接添加就可以了。

2、服务端配置文件
uniCloud采用的是uni-config-center公共模块,所有需要进行配置的信息都可以在此模块下进行配置,例如用户体系的uni-id.需要获取配置信息的时候,在云函数内require就可以了。

3、第三方凭据管理
以前做小程序开发的时候,获取ticket、accessToken之类的凭据比较繁琐,uniCloud提供了uni-open-bridge模块来自动管理这些凭据,包含uni-open-bridge云对象、uni-open-bridge-common公共模块和官方提供的opendb-open-data数据表。uni-open-bridge部署后会自动获取例如微信小程序的凭据并存储到opendb-open-data表内,在做相关逻辑编码需要用到这些凭据的时候,直接调用uni-open-bridge-common提供的api来获取凭据就OK了。

4、订阅消息
小程序比较重要的一个功能是消息订阅,uniCloud提供了uni-subscribemsg公共模块来进行订阅消息的发送,方便快捷。

5、用户管理
开发任何应用,用户的登陆、注册、资料编辑等等是不可避免且重复的,且现在用到第三方登陆的场景可以说是必须的了,例如微信登陆、手机号一键登陆等等。
使用uni-id-pages来维护管理用户的登陆,界面、后端逻辑、token的维护都不需要开发者操心了,连数据库都不需要新建,官方提供的uni-id-users表格满足所有的登陆需求。

6、关于token
在uni-id-pages模块下包含了uni-id-common公共模块,token的生成、刷新、校验是依靠这个模块来完成的,具体使用可查看文档。使用uni-id-pages模块后,token的维护不用手写代码,了解原理即可。

7、服务端逻辑
要写具体的服务逻辑,创建云函数上传至云空间部署运行即可,前端通过uniCloud.callFunction来调用具体的云函数就能前后端联调了。

8、定时任务
定时任务是比较常见的功能,使用云函数定时触发器。已配置定时触发器的云函数,会在相应时间点被自动触发,函数的返回结果不会返回给调用方。
.......

总结:
这次开发小程序,发行了微信小程序和头条小程序两个版本,总的来说效率是杠杠的,只要仔细看文档,不懂的查查资料和多提问,都能很快搞定需求,uniapp+uniCloud的确是一个很好的创新,前端工程师也可以全栈搞定项目的开发,对自身的职业发展有很大的好处,平时也可以兼职做做项目赚点外快。

继续阅读 »

前端


界面
vue语法配合flex布局,轻松完成界面开发。

服务端


相信对前端工程师来说,以前需要做全栈开发的话,需要硬着头皮学一门后端语言。uniCloud的出现,让前端开发可以使用熟悉的javascript语言来做后端服务开发,本次小程序的试车,就体验了一把uniCloud的方便快捷。

1、关于数据库
uniCloud提供了一个 JSON 格式的文档型数据库。顾名思义,数据库中的每条记录都是一个 JSON 格式的文档。
每张表/集合,都有一个表名*.schema.json的文件,来描述表的信息、字段的信息。可以很方便的定义表的字段、字段类型、表的权限和字段的权限。
做项目常用的表格官方已经提供了很多openDB模板,直接添加就可以了。

2、服务端配置文件
uniCloud采用的是uni-config-center公共模块,所有需要进行配置的信息都可以在此模块下进行配置,例如用户体系的uni-id.需要获取配置信息的时候,在云函数内require就可以了。

3、第三方凭据管理
以前做小程序开发的时候,获取ticket、accessToken之类的凭据比较繁琐,uniCloud提供了uni-open-bridge模块来自动管理这些凭据,包含uni-open-bridge云对象、uni-open-bridge-common公共模块和官方提供的opendb-open-data数据表。uni-open-bridge部署后会自动获取例如微信小程序的凭据并存储到opendb-open-data表内,在做相关逻辑编码需要用到这些凭据的时候,直接调用uni-open-bridge-common提供的api来获取凭据就OK了。

4、订阅消息
小程序比较重要的一个功能是消息订阅,uniCloud提供了uni-subscribemsg公共模块来进行订阅消息的发送,方便快捷。

5、用户管理
开发任何应用,用户的登陆、注册、资料编辑等等是不可避免且重复的,且现在用到第三方登陆的场景可以说是必须的了,例如微信登陆、手机号一键登陆等等。
使用uni-id-pages来维护管理用户的登陆,界面、后端逻辑、token的维护都不需要开发者操心了,连数据库都不需要新建,官方提供的uni-id-users表格满足所有的登陆需求。

6、关于token
在uni-id-pages模块下包含了uni-id-common公共模块,token的生成、刷新、校验是依靠这个模块来完成的,具体使用可查看文档。使用uni-id-pages模块后,token的维护不用手写代码,了解原理即可。

7、服务端逻辑
要写具体的服务逻辑,创建云函数上传至云空间部署运行即可,前端通过uniCloud.callFunction来调用具体的云函数就能前后端联调了。

8、定时任务
定时任务是比较常见的功能,使用云函数定时触发器。已配置定时触发器的云函数,会在相应时间点被自动触发,函数的返回结果不会返回给调用方。
.......

总结:
这次开发小程序,发行了微信小程序和头条小程序两个版本,总的来说效率是杠杠的,只要仔细看文档,不懂的查查资料和多提问,都能很快搞定需求,uniapp+uniCloud的确是一个很好的创新,前端工程师也可以全栈搞定项目的开发,对自身的职业发展有很大的好处,平时也可以兼职做做项目赚点外快。

收起阅读 »

海淀警方举办第一届“警学联盟·校园无诈”优秀反诈作品揭晓仪式

反诈 普法

同心合力,联合百年学府掀起反诈热潮;

警学联盟,携手高校师生共建无诈校园。

2023年8月29日晚,由北京市公安局海淀分局主办、清华大学、抖音集团协办,汇聚辖区各高校和社会各界关注的第一届“警学联盟·校园无诈”优秀反诈作品揭晓仪式,在清华大学新清华礼堂成功举办。1400余名各高校师生、海淀网友、辖区群众代表参加了揭晓仪式。

为深入贯彻落实习近平总书记和党中央关于打击治理电信网络诈骗犯罪工作的重要指示精神,针对海淀区高校数量多、师生体量大、龙头高校集中的现实特点,海淀警方于2023年3月启动第一届“警学联盟·校园无诈”防电诈主题海报和短视频征集大赛,面向全区高校师生征集反诈宣传作品。大赛期间,各高校师生积极参与,共接收辖区2000余名高校学生提交的参赛作品1235件。海淀警方与高校初审通过的859件作品通过抖音平台集中宣传展播,播放量近4000万次、点赞量45万余次。通过各校初审初筛、线上大众评审打分和线下专家教授复审等环节,最终评选出反诈大赛海报组、视频组获奖作品各70个。

为进一步提升高校反诈宣传影响力,展现各高校工作特色亮点,上好秋季开学季反诈“第一课”,推动高校反诈宣防工作走深走实,8月29日晚,海淀警方联合清华大学,在新清华学堂举办第一届“警学联盟·校园无诈”优秀反诈作品揭晓仪式。

活动共分为“警醒之旅 青春不陷诈”“守护之盾 行动不畏诈”“警学之翼 未来不容诈”三个篇章,在不同篇章穿插师生访谈、作品颁奖、文艺演出、学生倡议和宣传启动等环节,介绍分析当前高校反诈严峻形势和高发案件类型,对高校反诈优秀经验进行分享推广,由高校学生表演反诈主题情景剧、音乐剧,向大赛优秀作品创作学生进行颁奖,以及聘任高校学生担任“校园反诈宣传大使”,充分展现警学联合共筑校园安全防线的决心,全面开启2023年秋季新学期的反诈宣传工作。

近年来,电信网络诈骗案件高发,高校学生成为易受骗群体。为有效防范校园电信网络诈骗案件发生,切实维护广大师生财产安全,海淀警方与辖区37所高校“警学联盟”,通过“优秀民警进校园主题宣讲”、组建“校园反诈志愿者服务队”、举办“校园反诈创意作品大赛”等多种形式,深入开展高校反电诈宣传活动,织牢织密校园反诈防护网。每逢开学季,海淀警方以学校迎新、社团招新、新生军训等校园活动为契机,选派分局优秀民警组建校园安全宣传团队,主动走进大学校园开展反诈宣传活动,采用生动诙谐幽默的语言、互动性较强的宣传模式,以案说法,深入浅出地向学生们讲述刷单返利、冒充客服、“杀猪盘”等常见电信网络诈骗骗术及防范技巧,为学生们上好开学反诈第一课,深受学生广泛好评。

除此之外,在各高校的食堂、宿舍区、教学楼、图书馆、体育馆等显著位置,张贴反诈宣传品,利用公共区域电子屏、电视屏,定时滚动播放宣传视频、反诈标语,做到在校内“食住行学”全覆盖宣传,切实提高广大师生识骗防骗的意识和能力。

下一步,海淀公安将持续推进打击防范电信网络诈骗工作,不断拓展宣传途径、创新宣传手段,营造全民反诈、全社会反诈的良好氛围,切实守护好人民群众的“钱袋子”。同时,海淀警方将以此次活动为起点,携手高校师生,共同推动校园安全建设,为打造安全、和谐、无诈的校园环境贡献海淀公安力量。

继续阅读 »

同心合力,联合百年学府掀起反诈热潮;

警学联盟,携手高校师生共建无诈校园。

2023年8月29日晚,由北京市公安局海淀分局主办、清华大学、抖音集团协办,汇聚辖区各高校和社会各界关注的第一届“警学联盟·校园无诈”优秀反诈作品揭晓仪式,在清华大学新清华礼堂成功举办。1400余名各高校师生、海淀网友、辖区群众代表参加了揭晓仪式。

为深入贯彻落实习近平总书记和党中央关于打击治理电信网络诈骗犯罪工作的重要指示精神,针对海淀区高校数量多、师生体量大、龙头高校集中的现实特点,海淀警方于2023年3月启动第一届“警学联盟·校园无诈”防电诈主题海报和短视频征集大赛,面向全区高校师生征集反诈宣传作品。大赛期间,各高校师生积极参与,共接收辖区2000余名高校学生提交的参赛作品1235件。海淀警方与高校初审通过的859件作品通过抖音平台集中宣传展播,播放量近4000万次、点赞量45万余次。通过各校初审初筛、线上大众评审打分和线下专家教授复审等环节,最终评选出反诈大赛海报组、视频组获奖作品各70个。

为进一步提升高校反诈宣传影响力,展现各高校工作特色亮点,上好秋季开学季反诈“第一课”,推动高校反诈宣防工作走深走实,8月29日晚,海淀警方联合清华大学,在新清华学堂举办第一届“警学联盟·校园无诈”优秀反诈作品揭晓仪式。

活动共分为“警醒之旅 青春不陷诈”“守护之盾 行动不畏诈”“警学之翼 未来不容诈”三个篇章,在不同篇章穿插师生访谈、作品颁奖、文艺演出、学生倡议和宣传启动等环节,介绍分析当前高校反诈严峻形势和高发案件类型,对高校反诈优秀经验进行分享推广,由高校学生表演反诈主题情景剧、音乐剧,向大赛优秀作品创作学生进行颁奖,以及聘任高校学生担任“校园反诈宣传大使”,充分展现警学联合共筑校园安全防线的决心,全面开启2023年秋季新学期的反诈宣传工作。

近年来,电信网络诈骗案件高发,高校学生成为易受骗群体。为有效防范校园电信网络诈骗案件发生,切实维护广大师生财产安全,海淀警方与辖区37所高校“警学联盟”,通过“优秀民警进校园主题宣讲”、组建“校园反诈志愿者服务队”、举办“校园反诈创意作品大赛”等多种形式,深入开展高校反电诈宣传活动,织牢织密校园反诈防护网。每逢开学季,海淀警方以学校迎新、社团招新、新生军训等校园活动为契机,选派分局优秀民警组建校园安全宣传团队,主动走进大学校园开展反诈宣传活动,采用生动诙谐幽默的语言、互动性较强的宣传模式,以案说法,深入浅出地向学生们讲述刷单返利、冒充客服、“杀猪盘”等常见电信网络诈骗骗术及防范技巧,为学生们上好开学反诈第一课,深受学生广泛好评。

除此之外,在各高校的食堂、宿舍区、教学楼、图书馆、体育馆等显著位置,张贴反诈宣传品,利用公共区域电子屏、电视屏,定时滚动播放宣传视频、反诈标语,做到在校内“食住行学”全覆盖宣传,切实提高广大师生识骗防骗的意识和能力。

下一步,海淀公安将持续推进打击防范电信网络诈骗工作,不断拓展宣传途径、创新宣传手段,营造全民反诈、全社会反诈的良好氛围,切实守护好人民群众的“钱袋子”。同时,海淀警方将以此次活动为起点,携手高校师生,共同推动校园安全建设,为打造安全、和谐、无诈的校园环境贡献海淀公安力量。

收起阅读 »

Chrome浏览器下载安装包 单击下载无法下载

下载

需要右键另一个标签页打开

需要右键另一个标签页打开