HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

关于video组件在list组件里,多次滑动出现闪退的情况

video nvue

关于video组件在list组件里,多次滑动出现闪退的情况,有可能是video组件的属性所影响,可能是封面属性是用的链接,可以使用本地图片看看,会不会出现闪退的情况,同时注意在list组件不要过多的嵌套。

关于video组件在list组件里,多次滑动出现闪退的情况,有可能是video组件的属性所影响,可能是封面属性是用的链接,可以使用本地图片看看,会不会出现闪退的情况,同时注意在list组件不要过多的嵌套。

个推《APP消息推送白皮书》免费下载,为开发者打造消息到达率、点击率提升方案

推送 消息推送 个推SDK

消息到达率、点击率,如何提升?

智能、精细、友好的用户触达,如何实现?

促活跃、增留存、降成本,有何方法?

......

答案尽在个推《APP消息推送白皮书》。

3月29日,个推《APP消息推送白皮书》(以下简称白皮书)正式发布。作为行业首本功能实践白皮书,本书详细阐述了个推消息推送产品的核心功能、典型应用场景,并提供实战案例作为参考,希望为广大开发者们找到提升推送效率与效果的最佳路径,开启数字化运营的新篇章!

继续阅读 »

消息到达率、点击率,如何提升?

智能、精细、友好的用户触达,如何实现?

促活跃、增留存、降成本,有何方法?

......

答案尽在个推《APP消息推送白皮书》。

3月29日,个推《APP消息推送白皮书》(以下简称白皮书)正式发布。作为行业首本功能实践白皮书,本书详细阐述了个推消息推送产品的核心功能、典型应用场景,并提供实战案例作为参考,希望为广大开发者们找到提升推送效率与效果的最佳路径,开启数字化运营的新篇章!

收起阅读 »

蓝牙打印机

蓝牙打印

H5+APP使用mui.js连接蓝牙打印机

H5+APP使用mui.js连接蓝牙打印机

关于iOS云打包中DSYM符号表需要收费的问题

App云端打包

首先表明我的观点,DSYM符号文件作为iOS解决查看App崩溃的重要文件之一。为什么不直接返回给开发者反而要收费?
作为iOS原生开发者应该都知道需要直接定位或查找项目中的崩溃等问题可以直接分析DSYM符号表找到。但是通过dclound云端打包的项目需要收费才能拿到。强烈建议开放这个直接返回给我们。支持的点赞

继续阅读 »

首先表明我的观点,DSYM符号文件作为iOS解决查看App崩溃的重要文件之一。为什么不直接返回给开发者反而要收费?
作为iOS原生开发者应该都知道需要直接定位或查找项目中的崩溃等问题可以直接分析DSYM符号表找到。但是通过dclound云端打包的项目需要收费才能拿到。强烈建议开放这个直接返回给我们。支持的点赞

收起阅读 »

实名认证信息变更

云服务

变更类型

DCloud开发平台的实名认证信息变更目前只支持以下几种变更类型。

  • 公司名称变更:适用于通过工商登记变更公司的名称的情况。
  • A公司变更为B公司:仅允许存在关联关系的公司之间进行变更。如集团公司下属不同子公司、母子公司、分公司等。
  • 个人变更为公司:仅允许与公司存在劳动关系的个人或法人变更为公司实名认证。
  • 公司变更为个人:仅允许个体工商户变更为与营业执照“经营者姓名”一致的个人实名认证。
  • 个人修改姓名:适用于个人通过公安登记变更姓名,身份证号不变的情况。
  • 个人变更个人:不支持

变更申请途径

登录开发者中心,进入“个人中心”-“账户信息”页面,点击“修改实名认证信息”,如下图所示。按照页面提示提交相关资料后,DCloud 会在1-3个工作日内完成变更审核。审核通过后,实名认证信息变更为新的认证信息。

材料要求

公司名称变更

  • 新名称营业执照照片
  • 名称变更登记通知书(工商/市场监督/税务局盖章)

A公司变更为B公司

  • 新名称营业执照照片
  • 实名认证变更声明(公司版)(模板见文章下方附件)

个人变更为公司

  • 实名认证变更声明(个人版)(模板见文章下方附件)
  • 原实名认证人手持身份证照片
  • 公司营业执照照片

个人变更姓名

  • 新身份证照片

公司变更为个人

  • 经营者身份证正反面照片
  • 经营者手持营业执照照片

注意事项

  • 主体变更规则:一个季度仅支持一次变更,不支持相同两个主体间反复变更。
  • 旧主体注销:在旧主体注销之前要发出申请,注销后不支持实名认证变更。
  • 如当前账号已开通 uni-AD 业务并且有应用在使用 uni-AD 进行变现,变更实名认证信息可能会影响广告收益结算,具体结算规则以 uni-AD 后台为准。
  • 实名认证通过的账号不能撤销实名认证。可以申请注销账号,注销账号流程详见:https://ask.dcloud.net.cn/article/39919

扩展阅读

附件

继续阅读 »

变更类型

DCloud开发平台的实名认证信息变更目前只支持以下几种变更类型。

  • 公司名称变更:适用于通过工商登记变更公司的名称的情况。
  • A公司变更为B公司:仅允许存在关联关系的公司之间进行变更。如集团公司下属不同子公司、母子公司、分公司等。
  • 个人变更为公司:仅允许与公司存在劳动关系的个人或法人变更为公司实名认证。
  • 公司变更为个人:仅允许个体工商户变更为与营业执照“经营者姓名”一致的个人实名认证。
  • 个人修改姓名:适用于个人通过公安登记变更姓名,身份证号不变的情况。
  • 个人变更个人:不支持

变更申请途径

登录开发者中心,进入“个人中心”-“账户信息”页面,点击“修改实名认证信息”,如下图所示。按照页面提示提交相关资料后,DCloud 会在1-3个工作日内完成变更审核。审核通过后,实名认证信息变更为新的认证信息。

材料要求

公司名称变更

  • 新名称营业执照照片
  • 名称变更登记通知书(工商/市场监督/税务局盖章)

A公司变更为B公司

  • 新名称营业执照照片
  • 实名认证变更声明(公司版)(模板见文章下方附件)

个人变更为公司

  • 实名认证变更声明(个人版)(模板见文章下方附件)
  • 原实名认证人手持身份证照片
  • 公司营业执照照片

个人变更姓名

  • 新身份证照片

公司变更为个人

  • 经营者身份证正反面照片
  • 经营者手持营业执照照片

注意事项

  • 主体变更规则:一个季度仅支持一次变更,不支持相同两个主体间反复变更。
  • 旧主体注销:在旧主体注销之前要发出申请,注销后不支持实名认证变更。
  • 如当前账号已开通 uni-AD 业务并且有应用在使用 uni-AD 进行变现,变更实名认证信息可能会影响广告收益结算,具体结算规则以 uni-AD 后台为准。
  • 实名认证通过的账号不能撤销实名认证。可以申请注销账号,注销账号流程详见:https://ask.dcloud.net.cn/article/39919

扩展阅读

附件

收起阅读 »

mui判断系统权限+开启系统权限+获取应用权限+打开应用权限设置界面

/**

  • 获取系统权限
  • @param {Object} permission 权限标识
  • CAMERA: (String 类型 )访问摄像头权限 用于调用摄像头(plus.camera. plus.barcode.
  • CONTACTS: (String 类型 )访问系统联系人权限 用于访问(读、写)系统通讯录(plus.gallery.*)
  • GALLERY: (String 类型 )访问系统相册权限 用于访问(读、写)系统相册(plus.gallery.*)
  • LOCATION: (String 类型 )定位权限 用于获取当前用户位置信息(plus.geolocation.*)
  • NOTIFITION: (String 类型 )消息通知权限 用于接收系统消息通知(plus.push.*)
  • RECORD: (String 类型 )录音权限 用于进行本地录音操作(plus.audio.AudioRecorder)
  • SHORTCUT: (String 类型 )创建桌面快捷方式权限 用于在系统桌面创建快捷方式图标(plus.navigator.createShortcut)
  • @param {Object} successCallBack 成功回调
  • @param {Object} errorCallBack 失败回调
    */

function powerjudge() {
var context = plus.android.importClass("android.content.Context");
var locationManager = plus.android.importClass("android.location.LocationManager");
var main = plus.android.runtimeMainActivity();
var mainSvr = main.getSystemService(context.LOCATION_SERVICE);
var ismain = mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)
//ismain false : 系统权限没有开启 true :系统权限已经开启
var btnArray = ['设置'];
if (ismain == false) {
mui.confirm('您需要打开定位权限,才可以使用【车辆定位】应用。', '定位服务已关闭', btnArray,
function(e) {
var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android.content.Intent");
var mIntent = new Intent('android.settings.LOCATION_SOURCE_SETTINGS');
main.startActivity(mIntent);
});

} else {  
    // successCallBack 1:已经给到权限了 2、用户点击允许  
    // errorCallBack 1:本来就是拒接的  2、用户点击拒接  
    getPermission("LOCATION", function(res) {  
        // 下面逻辑  
        Unit_Icon();  
    }, function(res) {  
        if (res == "1" || res == "2") {  
            mui.confirm('定位权限被禁止,请到设置权限里找到应用手动开启权限,否则将不能使用此功能。', '定位权限被禁止', btnArray,  
                function(e) {  
                    var Intent = plus.android.importClass("android.content.Intent");  
                    var Settings = plus.android.importClass("android.provider.Settings");  
                    var Uri = plus.android.importClass("android.net.Uri");  
                    var mainActivity = plus.android.runtimeMainActivity();  
                    var intent = new Intent();  
                    intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);  
                    var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);  
                    intent.setData(uri);  
                    mainActivity.startActivity(intent);  
                });  
        } else {  
            msgShow(res);  
        }  

    })  
}  

}

function getPermission(permissionIdentity, successCallBack, errorCallBack) {
//权限标识转换成大写
var permissionIdentity = permissionIdentity.toUpperCase();
//获取检测权限的状态
var checkResult = plus.navigator.checkPermission(permissionIdentity);
//权限状态是否正常
var permissionStatusOk = false;
//权限中文名称
var permissionName = '';
//对应 andorid 的具体权限
var androidPermission = '';
//获取权限中文意思与对应 android 系统的权限字符串
switch (permissionIdentity) {
case 'LOCATION':
permissionName = '定位';
androidPermission = 'android.permission.ACCESS_COARSE_LOCATION';
break;
}

//判断检查权限的结果    
switch (checkResult) {  
    case 'authorized':  
        //正常的    
        permissionStatusOk = true  
        break;  
    case 'denied':  
        //表示程序已被用户拒绝使用此权限,如果是拒绝的就再次提示用户打开确认提示框    
        //如果有该权限但是没有打开不进行操作还是会去申请或手动打开    
        // console.log('已关闭' + permissionName + '权限')    
        // errorCallBack('已关闭' + permissionName + '权限');    
        // return    
        break;  
    case 'undetermined':  
        // 表示程序未确定是否可使用此权限,此时调用对应的API时系统会弹出提示框让用户确认    
        // this.requestPermissions(androidPermission, permissionName, successCallBack, errorCallBack)    
        // errorCallBack('未确定' + permissionName + '权限');    
        // return    
        break;  
    case 'unknown':  
        errorCallBack('无法查询' + permissionName + '权限');  
        return  
        break;  
    default:  
        errorCallBack('不支持' + permissionName + '权限');  
        return  
        break;  
}  

//如果权限是正常的执行成功回调    
if (permissionStatusOk) {  
    successCallBack("1")  
} else {  
    //如果不正常,如果是 andorid 系统,就动态申请权限    
    if (plus.os.name == 'Android') {  
        //动态申请权限    
        plus.android.requestPermissions([androidPermission], function(e) {  
            if (e.deniedAlways.length > 0) {  
                //权限被永久拒绝    
                // 弹出提示框解释为何需要定位权限,引导用户打开设置页面开启    
                //errorCallBack(permissionName + ' 权限被永久拒绝,请到设置权限里找到应用手动开启权限,否则将不能使用此功能。')  
                errorCallBack("1")  

                // console.log('Always Denied!!! ' + e.deniedAlways.toString());    
            }  
            if (e.deniedPresent.length > 0) {  
                //权限被临时拒绝    
                // 弹出提示框解释为何需要定位权限,可再次调用plus.android.requestPermissions申请权限    
                //errorCallBack('拒绝开启 ' + permissionName + ' 权限,将不能使用此功能!')  
                errorCallBack('2')  
                // console.log('Present Denied!!! ' + e.deniedPresent.toString());    
            };  
            if (e.granted.length > 0) {  
                //权限被允许    
                //调用依赖获取定位权限的代码    
                successCallBack("2")  
                // console.log('Granted!!! ' + e.granted.toString());    
            }  
        }, function(e) {  
            errorCallBack('请求 ' + permissionName + ' 权限失败,' + +JSON.stringify(e))  
            // console.log('Request Permissions error:' + JSON.stringify(e));    
        })  
    }  
}  

}

继续阅读 »

/**

  • 获取系统权限
  • @param {Object} permission 权限标识
  • CAMERA: (String 类型 )访问摄像头权限 用于调用摄像头(plus.camera. plus.barcode.
  • CONTACTS: (String 类型 )访问系统联系人权限 用于访问(读、写)系统通讯录(plus.gallery.*)
  • GALLERY: (String 类型 )访问系统相册权限 用于访问(读、写)系统相册(plus.gallery.*)
  • LOCATION: (String 类型 )定位权限 用于获取当前用户位置信息(plus.geolocation.*)
  • NOTIFITION: (String 类型 )消息通知权限 用于接收系统消息通知(plus.push.*)
  • RECORD: (String 类型 )录音权限 用于进行本地录音操作(plus.audio.AudioRecorder)
  • SHORTCUT: (String 类型 )创建桌面快捷方式权限 用于在系统桌面创建快捷方式图标(plus.navigator.createShortcut)
  • @param {Object} successCallBack 成功回调
  • @param {Object} errorCallBack 失败回调
    */

function powerjudge() {
var context = plus.android.importClass("android.content.Context");
var locationManager = plus.android.importClass("android.location.LocationManager");
var main = plus.android.runtimeMainActivity();
var mainSvr = main.getSystemService(context.LOCATION_SERVICE);
var ismain = mainSvr.isProviderEnabled(locationManager.GPS_PROVIDER)
//ismain false : 系统权限没有开启 true :系统权限已经开启
var btnArray = ['设置'];
if (ismain == false) {
mui.confirm('您需要打开定位权限,才可以使用【车辆定位】应用。', '定位服务已关闭', btnArray,
function(e) {
var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android.content.Intent");
var mIntent = new Intent('android.settings.LOCATION_SOURCE_SETTINGS');
main.startActivity(mIntent);
});

} else {  
    // successCallBack 1:已经给到权限了 2、用户点击允许  
    // errorCallBack 1:本来就是拒接的  2、用户点击拒接  
    getPermission("LOCATION", function(res) {  
        // 下面逻辑  
        Unit_Icon();  
    }, function(res) {  
        if (res == "1" || res == "2") {  
            mui.confirm('定位权限被禁止,请到设置权限里找到应用手动开启权限,否则将不能使用此功能。', '定位权限被禁止', btnArray,  
                function(e) {  
                    var Intent = plus.android.importClass("android.content.Intent");  
                    var Settings = plus.android.importClass("android.provider.Settings");  
                    var Uri = plus.android.importClass("android.net.Uri");  
                    var mainActivity = plus.android.runtimeMainActivity();  
                    var intent = new Intent();  
                    intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);  
                    var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);  
                    intent.setData(uri);  
                    mainActivity.startActivity(intent);  
                });  
        } else {  
            msgShow(res);  
        }  

    })  
}  

}

function getPermission(permissionIdentity, successCallBack, errorCallBack) {
//权限标识转换成大写
var permissionIdentity = permissionIdentity.toUpperCase();
//获取检测权限的状态
var checkResult = plus.navigator.checkPermission(permissionIdentity);
//权限状态是否正常
var permissionStatusOk = false;
//权限中文名称
var permissionName = '';
//对应 andorid 的具体权限
var androidPermission = '';
//获取权限中文意思与对应 android 系统的权限字符串
switch (permissionIdentity) {
case 'LOCATION':
permissionName = '定位';
androidPermission = 'android.permission.ACCESS_COARSE_LOCATION';
break;
}

//判断检查权限的结果    
switch (checkResult) {  
    case 'authorized':  
        //正常的    
        permissionStatusOk = true  
        break;  
    case 'denied':  
        //表示程序已被用户拒绝使用此权限,如果是拒绝的就再次提示用户打开确认提示框    
        //如果有该权限但是没有打开不进行操作还是会去申请或手动打开    
        // console.log('已关闭' + permissionName + '权限')    
        // errorCallBack('已关闭' + permissionName + '权限');    
        // return    
        break;  
    case 'undetermined':  
        // 表示程序未确定是否可使用此权限,此时调用对应的API时系统会弹出提示框让用户确认    
        // this.requestPermissions(androidPermission, permissionName, successCallBack, errorCallBack)    
        // errorCallBack('未确定' + permissionName + '权限');    
        // return    
        break;  
    case 'unknown':  
        errorCallBack('无法查询' + permissionName + '权限');  
        return  
        break;  
    default:  
        errorCallBack('不支持' + permissionName + '权限');  
        return  
        break;  
}  

//如果权限是正常的执行成功回调    
if (permissionStatusOk) {  
    successCallBack("1")  
} else {  
    //如果不正常,如果是 andorid 系统,就动态申请权限    
    if (plus.os.name == 'Android') {  
        //动态申请权限    
        plus.android.requestPermissions([androidPermission], function(e) {  
            if (e.deniedAlways.length > 0) {  
                //权限被永久拒绝    
                // 弹出提示框解释为何需要定位权限,引导用户打开设置页面开启    
                //errorCallBack(permissionName + ' 权限被永久拒绝,请到设置权限里找到应用手动开启权限,否则将不能使用此功能。')  
                errorCallBack("1")  

                // console.log('Always Denied!!! ' + e.deniedAlways.toString());    
            }  
            if (e.deniedPresent.length > 0) {  
                //权限被临时拒绝    
                // 弹出提示框解释为何需要定位权限,可再次调用plus.android.requestPermissions申请权限    
                //errorCallBack('拒绝开启 ' + permissionName + ' 权限,将不能使用此功能!')  
                errorCallBack('2')  
                // console.log('Present Denied!!! ' + e.deniedPresent.toString());    
            };  
            if (e.granted.length > 0) {  
                //权限被允许    
                //调用依赖获取定位权限的代码    
                successCallBack("2")  
                // console.log('Granted!!! ' + e.granted.toString());    
            }  
        }, function(e) {  
            errorCallBack('请求 ' + permissionName + ' 权限失败,' + +JSON.stringify(e))  
            // console.log('Request Permissions error:' + JSON.stringify(e));    
        })  
    }  
}  

}

收起阅读 »

nvue map高德地图组件升级,离线设置个性化地图、WMS服务、热力图、下载离线地图、海量点、行政区划边界查询。。。可使用nvue map所有功能

nvue map高德地图组件升级,离线设置个性化地图、WMS服务、热力图、下载离线地图、海量点、行政区划边界查询。。。可使用nvue map所有功能

离线设置个性化地图、样式文件:https://ext.dcloud.net.cn/plugin?id=7637

WMS服务:https://ext.dcloud.net.cn/plugin?id=7744

热力图:https://ext.dcloud.net.cn/plugin?id=7751

地图截图:https://ext.dcloud.net.cn/plugin?id=8588

下载离线地图:https://ext.dcloud.net.cn/plugin?id=9215

海量点:https://ext.dcloud.net.cn/plugin?id=9260

行政区划边界查询:https://ext.dcloud.net.cn/plugin?id=9439

后续会加入更多 官方nvue map没有的功能

欢迎关注,有什么需求的,都可以加我QQ:543610866,可定制

继续阅读 »

nvue map高德地图组件升级,离线设置个性化地图、WMS服务、热力图、下载离线地图、海量点、行政区划边界查询。。。可使用nvue map所有功能

离线设置个性化地图、样式文件:https://ext.dcloud.net.cn/plugin?id=7637

WMS服务:https://ext.dcloud.net.cn/plugin?id=7744

热力图:https://ext.dcloud.net.cn/plugin?id=7751

地图截图:https://ext.dcloud.net.cn/plugin?id=8588

下载离线地图:https://ext.dcloud.net.cn/plugin?id=9215

海量点:https://ext.dcloud.net.cn/plugin?id=9260

行政区划边界查询:https://ext.dcloud.net.cn/plugin?id=9439

后续会加入更多 官方nvue map没有的功能

欢迎关注,有什么需求的,都可以加我QQ:543610866,可定制

收起阅读 »

希望在开发者工具中调整CSS属性后,能够同步覆盖到css文件中

优化建议

如图所示,希望在开发者工具中调整CSS属性后,能够同步覆盖到css文件中。最新版的edge已经实现此功能了

如图所示,希望在开发者工具中调整CSS属性后,能够同步覆盖到css文件中。最新版的edge已经实现此功能了

UNIMP 插件开发注意事项

unimp

尚未发布

名词解释:

UNIMP: 特指 UNIMP-v2版本,v1版本自2022年1月后已不再维护。

背景说明:

UNIMP 采用多进程模式,每个小程序实例均运行在一个单独的进程。

比如,你的宿主APP 集成了 商城小程序A,客服小程序B。
那么 宿主,A,B,分别占据一个进程。

这样做的优点:

优化应用性能,提升实例的独立性。

但是也给插件开发带来一定的问题。

本文旨在总结说明这些注意事项,帮助插件开发者 适配UniMP模式

注意事项:

1 涉及页面跳转的操作,比如微信支付,微信认证等。

需要在宿主App中,实现对微信回调的监听。再进行二次分发。

继续阅读 »

尚未发布

名词解释:

UNIMP: 特指 UNIMP-v2版本,v1版本自2022年1月后已不再维护。

背景说明:

UNIMP 采用多进程模式,每个小程序实例均运行在一个单独的进程。

比如,你的宿主APP 集成了 商城小程序A,客服小程序B。
那么 宿主,A,B,分别占据一个进程。

这样做的优点:

优化应用性能,提升实例的独立性。

但是也给插件开发带来一定的问题。

本文旨在总结说明这些注意事项,帮助插件开发者 适配UniMP模式

注意事项:

1 涉及页面跳转的操作,比如微信支付,微信认证等。

需要在宿主App中,实现对微信回调的监听。再进行二次分发。

收起阅读 »

官方rpx rpx 即响应式 px 使用总结

响应式单位 响应式px rpx

1.HBurlderX 工具-> 设置-> 编辑器配置 px自动转换成rpx 就是用你开发手机宽度(uni.getSystemInfoSync().windowWidth 获取手机宽度)除以750 得到的数(极有可能是小数),填写在里面即可在输入px时候自动转换成rpx
2.如果做好第一步这里就自动计算,这是官方手动计算方法 750 * 元素在设计稿中的宽度 / 设计稿基准宽度 这个是官方转换公式,好用
3.如果屏幕宽度大于960px,此时rpx 填写宽度会有如下区别
01.如果填写是750rpx,那就不管多宽屏幕都是宽度100%,横向铺满
02.如果填写不是750rpx,自动会将你填写数值除以2后转换成普通px,
03.例如,目标屏幕宽度1366px ,如果css填写1366rpx ,则宽度正好是一半,如果想全部铺满必须填写 2732 就是1366 X 2 ;

继续阅读 »

1.HBurlderX 工具-> 设置-> 编辑器配置 px自动转换成rpx 就是用你开发手机宽度(uni.getSystemInfoSync().windowWidth 获取手机宽度)除以750 得到的数(极有可能是小数),填写在里面即可在输入px时候自动转换成rpx
2.如果做好第一步这里就自动计算,这是官方手动计算方法 750 * 元素在设计稿中的宽度 / 设计稿基准宽度 这个是官方转换公式,好用
3.如果屏幕宽度大于960px,此时rpx 填写宽度会有如下区别
01.如果填写是750rpx,那就不管多宽屏幕都是宽度100%,横向铺满
02.如果填写不是750rpx,自动会将你填写数值除以2后转换成普通px,
03.例如,目标屏幕宽度1366px ,如果css填写1366rpx ,则宽度正好是一半,如果想全部铺满必须填写 2732 就是1366 X 2 ;

收起阅读 »

vite 创建的项目 白屏

iOS 白屏

官网的demo没改任何东西真机调试ios直接白屏了
没报任何错误

在安卓上报错说一个文件语法问题

Uncaught SyntaxError: Unexpected token { at uni-app-view.umd.js:2

h5 正常

继续阅读 »

官网的demo没改任何东西真机调试ios直接白屏了
没报任何错误

在安卓上报错说一个文件语法问题

Uncaught SyntaxError: Unexpected token { at uni-app-view.umd.js:2

h5 正常

收起阅读 »