HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

打包h5 后 在微信内打开 webview 无法跳转问题

bug反馈

官方实例也有这个问题 希望及时修复

https://uniapp.dcloud.io/h5/pages/component/web-view/web-view

官方实例也有这个问题 希望及时修复

https://uniapp.dcloud.io/h5/pages/component/web-view/web-view

UNIAPP引入aspnetcore.signalR 在Android编译报错!

UNIAPP引入aspnetcore.signalR 在Android编译报错!

在H5端正常,但是在Android手机报错!


17:49:56.649  DONE  Build complete. Watching for changes...  
17:49:56.651 项目 'rctea.uni-app' 编译成功.  
17:49:56.680 正在同步手机端程序文件...  
17:50:03.095 同步手机端程序文件完成  
17:50:03.116 正在重启...  
17:50:06.532 50:05.749 32235 32263 E console : [ERROR] reportJSException >>>> exception function:createInstance, exception:Exception: TypeError: undefined is not an object (evaluating 'modules[moduleId].call')  
17:50:06.553 50:05.749 32235 32263 E console : __webpack_require__@(global function):34105:34  
17:50:06.576 50:05.749 32235 32263 E console : (global function):36976:46  
17:50:06.598 50:05.749 32235 32263 E console : __webpack_require__@(global function):34105:39  
17:50:06.619 50:05.749 32235 32263 E console : (global function):36833:97  
17:50:06.640 50:05.749 32235 32263 E console : __webpack_require__@(global function):34105:39  
17:50:06.661 50:05.749 32235 32263 E console : (global function):35492:103  
17:50:06.682 50:05.749 32235 32263 E console : __webpack_require__@(global function):34105:39  
17:50:06.703 50:05.749 32235 32263 E console : (global function):34180:88  
17:50:06.724 50:05.749 32235 32263 E console : __webpack_require__@(global function):34105:39  
17:50:06.745 50:05.749 32235 32263 E console : webpackUniversalModuleDefinition@(global function):34083:27  
17:50:06.766 50:05.749 32235 32263 E console : (global function):34085:3  
17:50:06.787 50:05.749 32235 32263 E console : F:\Dev\RCTEA-APP-v1.0\rctea.uni-app\common\im\signalr.js@(global function):38194:34  
17:50:06.808 50:05.749 32235 32263 E console : __webpack_require__@(global function):14538:35  
17:50:06.909 50:05.749 32235 32263 E console : (global function):14295:58  
17:50:06.909 50:05.749 32235 32263 E console : ./node_modules/babel-loader/lib/index.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js?!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/vue-loader/lib/index.js?!F:\Dev\RCTEA-APP-v1.0\rctea.uni-app\App.vue?vue
继续阅读 »

UNIAPP引入aspnetcore.signalR 在Android编译报错!

在H5端正常,但是在Android手机报错!


17:49:56.649  DONE  Build complete. Watching for changes...  
17:49:56.651 项目 'rctea.uni-app' 编译成功.  
17:49:56.680 正在同步手机端程序文件...  
17:50:03.095 同步手机端程序文件完成  
17:50:03.116 正在重启...  
17:50:06.532 50:05.749 32235 32263 E console : [ERROR] reportJSException >>>> exception function:createInstance, exception:Exception: TypeError: undefined is not an object (evaluating 'modules[moduleId].call')  
17:50:06.553 50:05.749 32235 32263 E console : __webpack_require__@(global function):34105:34  
17:50:06.576 50:05.749 32235 32263 E console : (global function):36976:46  
17:50:06.598 50:05.749 32235 32263 E console : __webpack_require__@(global function):34105:39  
17:50:06.619 50:05.749 32235 32263 E console : (global function):36833:97  
17:50:06.640 50:05.749 32235 32263 E console : __webpack_require__@(global function):34105:39  
17:50:06.661 50:05.749 32235 32263 E console : (global function):35492:103  
17:50:06.682 50:05.749 32235 32263 E console : __webpack_require__@(global function):34105:39  
17:50:06.703 50:05.749 32235 32263 E console : (global function):34180:88  
17:50:06.724 50:05.749 32235 32263 E console : __webpack_require__@(global function):34105:39  
17:50:06.745 50:05.749 32235 32263 E console : webpackUniversalModuleDefinition@(global function):34083:27  
17:50:06.766 50:05.749 32235 32263 E console : (global function):34085:3  
17:50:06.787 50:05.749 32235 32263 E console : F:\Dev\RCTEA-APP-v1.0\rctea.uni-app\common\im\signalr.js@(global function):38194:34  
17:50:06.808 50:05.749 32235 32263 E console : __webpack_require__@(global function):14538:35  
17:50:06.909 50:05.749 32235 32263 E console : (global function):14295:58  
17:50:06.909 50:05.749 32235 32263 E console : ./node_modules/babel-loader/lib/index.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js?!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/vue-loader/lib/index.js?!F:\Dev\RCTEA-APP-v1.0\rctea.uni-app\App.vue?vue
收起阅读 »

【bug】uni.login 接口需要点击两次才有回调

详细问题描述

只有文章能发,把bug 放这里吧
[内容]

android 使用微信开放平台登陆,点击按钮调用 uni.login() ,第一次点击未执行任何回调,点第二次才有sucess回调;
经过调试发现新用户第一次调用 uni.login() 会返回 fail 返回 {"code":-2,"errMsg":"login:fail:用户取消"},以后就能正常使用了
。我看官方的 hello uni-app demo也有这个问题;

这么明显的问题难道大家没遇到?

请问该如何解决?

[步骤]
点击登陆按钮,执行微信登陆授权

[结果]

点第一次出来微信授权界面同意后没执行任何回调(sucess,complete),需要再点一次登陆按钮才有回调过来。

第一次调用 uni.login() 会返回 fail 返回 {"code":-2,"errMsg":"login:fail:用户取消"}
[期望]

点一次就能正常回调

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]
HBuilderX 2.0.5.20190710-alpha

[windows版本号]
win10

[mac版本号]

uni-app运行环境说明

vivo android 手机

[可重现代码片段]


uni.login({  
                  provider: 'weixin',  
                  success: function (loginRes) {  
                      uni.showToast({  
                        title: JSON.stringify(loginRes)  
                      });  
                    console.log(loginRes.authResult);  
                  }  
                });

联系方式

继续阅读 »

详细问题描述

只有文章能发,把bug 放这里吧
[内容]

android 使用微信开放平台登陆,点击按钮调用 uni.login() ,第一次点击未执行任何回调,点第二次才有sucess回调;
经过调试发现新用户第一次调用 uni.login() 会返回 fail 返回 {"code":-2,"errMsg":"login:fail:用户取消"},以后就能正常使用了
。我看官方的 hello uni-app demo也有这个问题;

这么明显的问题难道大家没遇到?

请问该如何解决?

[步骤]
点击登陆按钮,执行微信登陆授权

[结果]

点第一次出来微信授权界面同意后没执行任何回调(sucess,complete),需要再点一次登陆按钮才有回调过来。

第一次调用 uni.login() 会返回 fail 返回 {"code":-2,"errMsg":"login:fail:用户取消"}
[期望]

点一次就能正常回调

IDE运行环境说明

[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]

[IDE版本号]
HBuilderX 2.0.5.20190710-alpha

[windows版本号]
win10

[mac版本号]

uni-app运行环境说明

vivo android 手机

[可重现代码片段]


uni.login({  
                  provider: 'weixin',  
                  success: function (loginRes) {  
                      uni.showToast({  
                        title: JSON.stringify(loginRes)  
                      });  
                    console.log(loginRes.authResult);  
                  }  
                });

联系方式

收起阅读 »

videoplayer 打包后安卓正常,ios调起失败

Vue HBuilder X iOS打包 VideoPlayer

我的是vue单页应用,要播放rtmp流视频,调用了h5 plus 的videoplayer控件

安卓云打包正常,ios打包后plus。navtiveUI.toast能调用,就视频控件不行

现在不知道是打包问题还是代码问题

更新:

let isVideoPlayer = plus.video.getVideoPlayerById('video');  
if (isVideoPlayer) {  
  this.video.show()  
  return  
}

原来是我在创建视频控件之前检查了当前是否已创建video这个api,

然后安卓上返回null正常,ios返回的是对象,所以就不会在创建视频控件了

注意创建videoplayer的时候,不要设置静音 muted:true,不然在手机上会表现为系统声音为静音了

还有问题就是rtmp流视频,在安卓上不卡,ios上会卡顿,暂时还没找到解决办法

继续阅读 »

我的是vue单页应用,要播放rtmp流视频,调用了h5 plus 的videoplayer控件

安卓云打包正常,ios打包后plus。navtiveUI.toast能调用,就视频控件不行

现在不知道是打包问题还是代码问题

更新:

let isVideoPlayer = plus.video.getVideoPlayerById('video');  
if (isVideoPlayer) {  
  this.video.show()  
  return  
}

原来是我在创建视频控件之前检查了当前是否已创建video这个api,

然后安卓上返回null正常,ios返回的是对象,所以就不会在创建视频控件了

注意创建videoplayer的时候,不要设置静音 muted:true,不然在手机上会表现为系统声音为静音了

还有问题就是rtmp流视频,在安卓上不卡,ios上会卡顿,暂时还没找到解决办法

收起阅读 »

关于离线推送的问题

第三方离线推送基本是不可能的没建议使用厂商的推送sdk

目前第三方推送都无法保证关闭应用过后还可以收到推送消息,这个是手机定制ROM对信鸽service的限制问题,信鸽的一切活动都需要建立在信鸽的service能够正常联网运行,service被终止后,由系统、安全软件和用户操作限定是否能够再次启动
QQ,微信是系统级别的应用白名单,相关的service不会因为关闭应用而退出,所以用户感知推出应用过后还可以收到消息,其实相关的service 还是能够在后台存活的
Android端在应用退出,信鸽service和信鸽的服务器断开连接后,这个时候给这个设备下发的消息,会变成离线消息,离线消息最多保存72小时,每个设备最多保存两条,如果有多条离线消息。在关闭应用期间推送的消息,如开启应用无法收到,请检查是否调用了反注册接口:XGPushManager.unregisterPush(this);

继续阅读 »

第三方离线推送基本是不可能的没建议使用厂商的推送sdk

目前第三方推送都无法保证关闭应用过后还可以收到推送消息,这个是手机定制ROM对信鸽service的限制问题,信鸽的一切活动都需要建立在信鸽的service能够正常联网运行,service被终止后,由系统、安全软件和用户操作限定是否能够再次启动
QQ,微信是系统级别的应用白名单,相关的service不会因为关闭应用而退出,所以用户感知推出应用过后还可以收到消息,其实相关的service 还是能够在后台存活的
Android端在应用退出,信鸽service和信鸽的服务器断开连接后,这个时候给这个设备下发的消息,会变成离线消息,离线消息最多保存72小时,每个设备最多保存两条,如果有多条离线消息。在关闭应用期间推送的消息,如开启应用无法收到,请检查是否调用了反注册接口:XGPushManager.unregisterPush(this);

收起阅读 »

分享一个查看APK信息的工具

uniapp

比如申请微信开放平台 安卓端需要输入签名。
比如申请地图 IOS 需要包名 和签名这些。可以利用下面的软件去查看 蛮方便的,是京东的一个。

下载地址

继续阅读 »

比如申请微信开放平台 安卓端需要输入签名。
比如申请地图 IOS 需要包名 和签名这些。可以利用下面的软件去查看 蛮方便的,是京东的一个。

下载地址

收起阅读 »

推荐使用rpx替代upx的公告

rpx upx

upx在2018年就推出了,其初衷是为了让微信的rpx机制可以跨全端使用。

在普通css写法里,upx会被编译器编译。但动态绑定时,upx无法被准确编译,此时官方提出了使用uni.upx2px()方法,用来动态计算。

后来其他几家小程序平台陆续都兼容了rpx机制,rpx不再是微信的专用单位,而成为了这个行业的通用单位。

最近官方收到很多开发小程序的用户投诉upx不能像rpx那样直接支持动态绑定,还得再使用uni.upx2px方法。

官方反思了策略,既然微信不可能支持upx的动态绑定,不如我们在App端和H5端来支持rpx的动态绑定。这样rpx就可以全端通用,且支持动态绑定,不再需要uni.upx2px方法。

从HBuilderX 2.0.5起,已经支持rpx的正常着色和px2rpx的ide代码提示转换功能。

官方也修改了uni-app文档中关于尺寸单位的介绍,不再推荐upx的使用,而推荐rpx。

这个策略调整,不影响开发者的已有代码正常运行。

开发者仍然可以使用upx和uni.upx2px,也可以改用rpx,都可以。没有必要批量调整老代码。但新开发还是应该使用rpx。

顺便提醒另一个事情,很多开发者对响应式单位依赖太严重了,比如组件高度或字体大小也使用upx/rpx。

注意只有当你需要某元素的单位要根据屏幕宽度(小范围)大小变化时,才需要rpx这类动态宽度单位。

一般情况下高度和字体大小是不应该根据屏幕宽度(等比)变化的。

继续阅读 »

upx在2018年就推出了,其初衷是为了让微信的rpx机制可以跨全端使用。

在普通css写法里,upx会被编译器编译。但动态绑定时,upx无法被准确编译,此时官方提出了使用uni.upx2px()方法,用来动态计算。

后来其他几家小程序平台陆续都兼容了rpx机制,rpx不再是微信的专用单位,而成为了这个行业的通用单位。

最近官方收到很多开发小程序的用户投诉upx不能像rpx那样直接支持动态绑定,还得再使用uni.upx2px方法。

官方反思了策略,既然微信不可能支持upx的动态绑定,不如我们在App端和H5端来支持rpx的动态绑定。这样rpx就可以全端通用,且支持动态绑定,不再需要uni.upx2px方法。

从HBuilderX 2.0.5起,已经支持rpx的正常着色和px2rpx的ide代码提示转换功能。

官方也修改了uni-app文档中关于尺寸单位的介绍,不再推荐upx的使用,而推荐rpx。

这个策略调整,不影响开发者的已有代码正常运行。

开发者仍然可以使用upx和uni.upx2px,也可以改用rpx,都可以。没有必要批量调整老代码。但新开发还是应该使用rpx。

顺便提醒另一个事情,很多开发者对响应式单位依赖太严重了,比如组件高度或字体大小也使用upx/rpx。

注意只有当你需要某元素的单位要根据屏幕宽度(小范围)大小变化时,才需要rpx这类动态宽度单位。

一般情况下高度和字体大小是不应该根据屏幕宽度(等比)变化的。

收起阅读 »

上架电视应用商店(小米为例)

问题:

解决方案:

distribute 》 android 》permissions 加上这段代码哈
"<uses-feature android:name=\"android.hardware.type.television\" android:required=\"true\"/>"

继续阅读 »

问题:

解决方案:

distribute 》 android 》permissions 加上这段代码哈
"<uses-feature android:name=\"android.hardware.type.television\" android:required=\"true\"/>"

收起阅读 »

同样的代码。平板扫描闪退,但是app没有闪退

闪退

扫描的dom元素 ,一定要添加,宽和高

扫描的dom元素 ,一定要添加,宽和高

web-view组件如何自定义标题 官方默认的是加在页面的title

web-view组件可以自定义标题吗,我不想用加载页面的title?
加载的页面为第三方页面,不方便改人家的title。我这边能自定义title吗?

web-view组件可以自定义标题吗,我不想用加载页面的title?
加载的页面为第三方页面,不方便改人家的title。我这边能自定义title吗?

关于安卓获取IMEI那些破事

IMEI

获取imei需要用户给获取手机标识的权限,
h5+ 封装的那个 plus.device.imei 看上去很美好。
但是OPPO手机存在一个缺陷,刚安装用户第一次打开 返回的imei是错误的一串16位的字符串(非纯数字)
杀掉进程第二次进入 才能正确获取imei,无论延迟或者别的页面触发 都一样的。

采用以下原始的方法完美获取IMEI ,折腾了很久。希望能给遇到的朋友派上用处:

if (plus.os.name == "Android") {
var Context = plus.android.importClass("android.content.Context");
var tephoneManager = plus.android.importClass("android.telephony.TelephonyManager");
var tm = plus.android.runtimeMainActivity().getSystemService(Context.TELEPHONY_SERVICE);
this.imei = tm.getDeviceId();
}

继续阅读 »

获取imei需要用户给获取手机标识的权限,
h5+ 封装的那个 plus.device.imei 看上去很美好。
但是OPPO手机存在一个缺陷,刚安装用户第一次打开 返回的imei是错误的一串16位的字符串(非纯数字)
杀掉进程第二次进入 才能正确获取imei,无论延迟或者别的页面触发 都一样的。

采用以下原始的方法完美获取IMEI ,折腾了很久。希望能给遇到的朋友派上用处:

if (plus.os.name == "Android") {
var Context = plus.android.importClass("android.content.Context");
var tephoneManager = plus.android.importClass("android.telephony.TelephonyManager");
var tm = plus.android.runtimeMainActivity().getSystemService(Context.TELEPHONY_SERVICE);
this.imei = tm.getDeviceId();
}

收起阅读 »