HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

大文件切片、分块、分段、分片,数据可用于分块上传(ios、android)

大文件切片、分块、分段、分片,数据可用于分块上传(ios、android):https://ext.dcloud.net.cn/plugin?id=3319

大文件切片、分块、分段、分片,数据可用于分块上传(ios、android):https://ext.dcloud.net.cn/plugin?id=3319

有需要环信 视频通话 语音电话 模块 插件集成,可以联系我

IM 视频 环信

有需要环信 视频通话 语音电话 模块 插件集成,可以联系我

有需要环信 视频通话 语音电话 模块 插件集成,可以联系我

ios打包安装 ios14提示无法安装

iOS打包 iOS14

(以下指企业开发者打包,或测试打包)ios申请证书、profile文件都没有问题,有没有遇到点击下载地址ios14安装不上,提示无法安装,ios13却可以?这可能是hbuilderx打包后的链接问题,只需把ipa包下载下来,重新新建一个plist文件,填写后,随便写个html,使用a链接href指向itms-services://?action=download-manifest&url=www.abc.com/aa/bb/xxxxx.plist(xxxxx是plist文件名,一般放服务器上),点击此a链接即可安装。

version_1.0.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://www.xxx.com/update/1.0.0/xxxx.ipa</string> //ipa路径
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>url</key>
<string>https://www.abc.com/update/logo.png</string> //安装时的icon
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>url</key>
<string>https://www.abc.com/update/small_logo.png</string> //安装时的小一圈的icon
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>io.dcloud.H5123456</string> //app BundleID 打包名
<key>bundle-version</key>
<string>1.0.0</string> //版本号
<key>kind</key>
<string>software</string>
<key>title</key>
<string>appName</string> //app名称
</dict>
</dict>
</array>
</dict>
</plist>
只需修改以上带注释的标签内容即可。

继续阅读 »

(以下指企业开发者打包,或测试打包)ios申请证书、profile文件都没有问题,有没有遇到点击下载地址ios14安装不上,提示无法安装,ios13却可以?这可能是hbuilderx打包后的链接问题,只需把ipa包下载下来,重新新建一个plist文件,填写后,随便写个html,使用a链接href指向itms-services://?action=download-manifest&url=www.abc.com/aa/bb/xxxxx.plist(xxxxx是plist文件名,一般放服务器上),点击此a链接即可安装。

version_1.0.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>url</key>
<string>https://www.xxx.com/update/1.0.0/xxxx.ipa</string> //ipa路径
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>url</key>
<string>https://www.abc.com/update/logo.png</string> //安装时的icon
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>url</key>
<string>https://www.abc.com/update/small_logo.png</string> //安装时的小一圈的icon
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>io.dcloud.H5123456</string> //app BundleID 打包名
<key>bundle-version</key>
<string>1.0.0</string> //版本号
<key>kind</key>
<string>software</string>
<key>title</key>
<string>appName</string> //app名称
</dict>
</dict>
</array>
</dict>
</plist>
只需修改以上带注释的标签内容即可。

收起阅读 »

稍等标梵讲解微信公众号的开发介绍

微信小程序

微信号公众信号现在分为预约号码和服务号码两种,两者可以区分一种是未认证,二种是微信号认证号码的服务号码支持功能比预约号码多,认证号码的功能支持比未认证号码多。

个人开发人员只能申请预约号码,不能认证的组织可以根据需要开设预约号码和服务号码,选择是否认证具体支持的功能接口-微信公众平台提供详细介绍,有心的合作伙伴可以仔细看文件,如果有疑问可以在文章下留言咨询
两者在开发上基本一致,不同之处在于服务号码支持的功能界面在预约号码中无法实现的前期开发中可以使用微通信公众平台提供的测试号码
每个微信账户都可以申请测试账户(支持所有功能接口)。账户的基本信息如下:
appID和appsecret需要保存以避免泄漏的token(必须是英语或数字,长度为3-32字符)可以定制,URL配置为自己的接口服务地址(http(80)或https(443)端口地址),两者填写完成后单击提交,微信服务器将向填写的URL地址发送GET请求

配置成功后,可以自由发挥!
有条件的合作伙伴看完了-啊,服务器很强,配置域名,直接配置,在服务器上编码吧
没有服务器的合作伙伴不要着急,可以考虑下面的网络贯通,也可以在当地开发快乐

继续阅读 »

微信号公众信号现在分为预约号码和服务号码两种,两者可以区分一种是未认证,二种是微信号认证号码的服务号码支持功能比预约号码多,认证号码的功能支持比未认证号码多。

个人开发人员只能申请预约号码,不能认证的组织可以根据需要开设预约号码和服务号码,选择是否认证具体支持的功能接口-微信公众平台提供详细介绍,有心的合作伙伴可以仔细看文件,如果有疑问可以在文章下留言咨询
两者在开发上基本一致,不同之处在于服务号码支持的功能界面在预约号码中无法实现的前期开发中可以使用微通信公众平台提供的测试号码
每个微信账户都可以申请测试账户(支持所有功能接口)。账户的基本信息如下:
appID和appsecret需要保存以避免泄漏的token(必须是英语或数字,长度为3-32字符)可以定制,URL配置为自己的接口服务地址(http(80)或https(443)端口地址),两者填写完成后单击提交,微信服务器将向填写的URL地址发送GET请求

配置成功后,可以自由发挥!
有条件的合作伙伴看完了-啊,服务器很强,配置域名,直接配置,在服务器上编码吧
没有服务器的合作伙伴不要着急,可以考虑下面的网络贯通,也可以在当地开发快乐

收起阅读 »

Android-SDK@2.9.3.80443_20201015,chooseImage无法唤起相机,可以扫码(已解决,经验分享)

拍照 问题已解决 经验分享

近日因为要适配开屏隐私提醒后授权,更新androidsdk至2.9.3版本,发现chooseImage无法唤起相机

症状:
1、扫码可用
2、指定按钮触发chooseImage,type为'camera',点击按钮无反应
3、logcat没有相关显著报错
4、chooseImage无fail返回

核查过程:
1、使用hello项目demo,复制所有lib,可以正常唤起相机拍照
2、复制项目文件到hello里面(我们实际项目使用的是integrated-AS,因为离线打包指引使用这个demo),也可以正常唤起
3、复制项目的androidManifest到hello,也可以正常唤起,说明与权限无关

解决办法:
逐文件比对发现我们的项目缺少库文件weex_livepusher-release.aar
此前因为生成apk过大,我们删除了一部分未使用的包
怎么也想不到是因为这个直播插件缺失导致的相机问题
希望能够帮到有类似问题的朋友

继续阅读 »

近日因为要适配开屏隐私提醒后授权,更新androidsdk至2.9.3版本,发现chooseImage无法唤起相机

症状:
1、扫码可用
2、指定按钮触发chooseImage,type为'camera',点击按钮无反应
3、logcat没有相关显著报错
4、chooseImage无fail返回

核查过程:
1、使用hello项目demo,复制所有lib,可以正常唤起相机拍照
2、复制项目文件到hello里面(我们实际项目使用的是integrated-AS,因为离线打包指引使用这个demo),也可以正常唤起
3、复制项目的androidManifest到hello,也可以正常唤起,说明与权限无关

解决办法:
逐文件比对发现我们的项目缺少库文件weex_livepusher-release.aar
此前因为生成apk过大,我们删除了一部分未使用的包
怎么也想不到是因为这个直播插件缺失导致的相机问题
希望能够帮到有类似问题的朋友

收起阅读 »

【建议】建议支持Tabbar midButton配置pagePath、未选中及选中样式

tabbar

如标题,需求中经常出现midButton也是一个页面的情况,建议支持上

如标题,需求中经常出现midButton也是一个页面的情况,建议支持上

---



/deep/ 在小程序中不生效

页面结构

   页面》组件1》组件2》组件3》组件4  

在组件3中修改组件4的样式不生效

/deep/.avatar {  
      width: 100%;  
      height: 692rpx;  
      font-size: 0;  
    }
继续阅读 »

页面结构

   页面》组件1》组件2》组件3》组件4  

在组件3中修改组件4的样式不生效

/deep/.avatar {  
      width: 100%;  
      height: 692rpx;  
      font-size: 0;  
    }
收起阅读 »

【超快速开发经验分享】一种只写 SQL、做配置完成复杂业务系统开发的方法


一看这标题,你肯定会认为基本不可能,或者认为,不写代码最多只能做一些简单业务场景实现。
为了达成我们的目标,先来看看常规企业级应用开发的基本过程:

常规企业级应用开发基本过程

  • 第一步,数据库建表建字段。
  • 第二步,在应用代码里创建跟表对应的业务对象,并实现及涉及到对象之间关系的操作方法。
  • 第三步,UI 层调用业务对象获取数据做渲染,或者通过业务对象做持久化操作。

受常规开发思维惯性,我们会理所当然地认为,要完成第二步、第三步,不写业务代码,而只写 SQL,做配置,就完成各种五花八门的业务逻辑,几乎是不可能。

回归业务系统开发本质

让我们需要回归一个业务系统的本质,来看看第二步和第三步到底做了什么。我们想象这样一种理想情况:如果终端用户自己就是 SQL 高手,那么他应该是完全有可能仅仅通过一个 SQL 客户端完成所有业务逻辑的。实际上,40 多年前,关系数据库的相关论文,就已经论证了基于关系运算理论来表达客观世界的完备性,所以上面的理想情况才变得那么合情合理。
那么我们不禁要问,在数据库上层开发出来的业务系统,究竟是要解决什么核心问题?

前面已陈述,关系运算理论及 SQL(已经非常接近自然语言) 以其本身的完备性,已经可以处理各种复杂的业务逻辑。那么显然,我们在上层创建的应用,不是为了解决数据库自身实现不了的业务逻辑,而额外做的代码工作,而是为了给不懂 SQL 的人提供的一个外壳,让他们基于这个相对固定交互的 UI 外壳,通过一些简单的操作比如点击鼠标,就能方便并正确地完成一些背后的 SQL 操作。

【图一 单系统数据流】
image

关系建模和面向对象的世界观冲突

为了实现上述固定交互的 UI 外壳,我们不得不在应用层,采用面向对象的方法去串接逻辑,此时又不得不做一些对象和实体关系映射(ORM)的工作。这也是关系建模体系和面向对象思维天生的冲突所在:前者是经过严格的数学和形式化推导论证过的完备建模体系,后者是编程开发模式上的一种最佳实践。虽然有一些优秀的 ORM 框架如 hibernate 和 mybatis 来解决这类问题,但不要忘记,我们完成业务逻辑的核心就在于 SQL 的执行。而为了达成这一目标,ORM 的做法似乎有些舍近求远。那么,能不能去掉第二步和第三步,只写 SQL 做配置就能完成系统开发呢?

解决之道

考察常规开发的第三步工作,会发现最终产出物实际上就是让用户在 UI 上操作完成背后对应的数据库的 IO 操作,所以我们可以从输入输出这两方面发掘本质需求:

  • 一方面(OUTPUT),由于关系数据库基于表、字段的结构化表示,一条 SELECT 语句执行的结果是可以在没有中间代码加工的情况下直接在页面上呈现的。只要 UI 层的各个组件比如列表、表格、卡片支持对相关数据的渲染呈现即可。
  • 另一方面(INPUT),用户做的相关持久化操作,此过程比较程式化,即从页面上取得各种各样的数据,汇总到后台执行 UPDATE、INSERT、DELETE 等一条或者多条 SQL(含事务) 操作,当然中间可能有一些 IF ELSE 的处理细节。

于是,为了达成本文的开题目标,我们做了无远开发平台,它是一个专门用于系统开发的一站式工作台,用户可以基于此工作台,基本只需要写 SQL 做配置,就能快速完成全部开发工作,并且获得可以私有部署的系统。这个工作台,作为具备完整开发功能的云 IDE,还主要做了以下两方面的工作来达成只写 SQL 做配置就能完成开发的目标:

  • 一方面,它构建了一个标准化 UI 组件库(支持三方扩展),让组件的使用过程以配置化的形式呈现给开发者,直接对接 SQL 做数据组织或呈现。
  • 另一方面,提供一套完备的变量数据体系和程式化的事件动作响应机制,让开发者根据这种程式化的模式,快速地完成各种复杂的业务数据持久化操作。

【图二 无远开发平台 所见即所得开发示意】

使用效果

经过实战检验,这种开发模式,比常规开发模式快至少 10 倍,并且迭代及维护成本都大大降低。目前已有上万名开发者使用该平台,完成了涵盖各个行业各种复杂信息管理应用场景的系统,

案例

与其他低代码(low-code)开发工具只能开发简单的业务系统不同,无远开发平台 基于Z-Model 理论在开发模型上的完备性,支持全业务场景开发,没有任何技术限制

欢迎尝试并指教

继续阅读 »


一看这标题,你肯定会认为基本不可能,或者认为,不写代码最多只能做一些简单业务场景实现。
为了达成我们的目标,先来看看常规企业级应用开发的基本过程:

常规企业级应用开发基本过程

  • 第一步,数据库建表建字段。
  • 第二步,在应用代码里创建跟表对应的业务对象,并实现及涉及到对象之间关系的操作方法。
  • 第三步,UI 层调用业务对象获取数据做渲染,或者通过业务对象做持久化操作。

受常规开发思维惯性,我们会理所当然地认为,要完成第二步、第三步,不写业务代码,而只写 SQL,做配置,就完成各种五花八门的业务逻辑,几乎是不可能。

回归业务系统开发本质

让我们需要回归一个业务系统的本质,来看看第二步和第三步到底做了什么。我们想象这样一种理想情况:如果终端用户自己就是 SQL 高手,那么他应该是完全有可能仅仅通过一个 SQL 客户端完成所有业务逻辑的。实际上,40 多年前,关系数据库的相关论文,就已经论证了基于关系运算理论来表达客观世界的完备性,所以上面的理想情况才变得那么合情合理。
那么我们不禁要问,在数据库上层开发出来的业务系统,究竟是要解决什么核心问题?

前面已陈述,关系运算理论及 SQL(已经非常接近自然语言) 以其本身的完备性,已经可以处理各种复杂的业务逻辑。那么显然,我们在上层创建的应用,不是为了解决数据库自身实现不了的业务逻辑,而额外做的代码工作,而是为了给不懂 SQL 的人提供的一个外壳,让他们基于这个相对固定交互的 UI 外壳,通过一些简单的操作比如点击鼠标,就能方便并正确地完成一些背后的 SQL 操作。

【图一 单系统数据流】
image

关系建模和面向对象的世界观冲突

为了实现上述固定交互的 UI 外壳,我们不得不在应用层,采用面向对象的方法去串接逻辑,此时又不得不做一些对象和实体关系映射(ORM)的工作。这也是关系建模体系和面向对象思维天生的冲突所在:前者是经过严格的数学和形式化推导论证过的完备建模体系,后者是编程开发模式上的一种最佳实践。虽然有一些优秀的 ORM 框架如 hibernate 和 mybatis 来解决这类问题,但不要忘记,我们完成业务逻辑的核心就在于 SQL 的执行。而为了达成这一目标,ORM 的做法似乎有些舍近求远。那么,能不能去掉第二步和第三步,只写 SQL 做配置就能完成系统开发呢?

解决之道

考察常规开发的第三步工作,会发现最终产出物实际上就是让用户在 UI 上操作完成背后对应的数据库的 IO 操作,所以我们可以从输入输出这两方面发掘本质需求:

  • 一方面(OUTPUT),由于关系数据库基于表、字段的结构化表示,一条 SELECT 语句执行的结果是可以在没有中间代码加工的情况下直接在页面上呈现的。只要 UI 层的各个组件比如列表、表格、卡片支持对相关数据的渲染呈现即可。
  • 另一方面(INPUT),用户做的相关持久化操作,此过程比较程式化,即从页面上取得各种各样的数据,汇总到后台执行 UPDATE、INSERT、DELETE 等一条或者多条 SQL(含事务) 操作,当然中间可能有一些 IF ELSE 的处理细节。

于是,为了达成本文的开题目标,我们做了无远开发平台,它是一个专门用于系统开发的一站式工作台,用户可以基于此工作台,基本只需要写 SQL 做配置,就能快速完成全部开发工作,并且获得可以私有部署的系统。这个工作台,作为具备完整开发功能的云 IDE,还主要做了以下两方面的工作来达成只写 SQL 做配置就能完成开发的目标:

  • 一方面,它构建了一个标准化 UI 组件库(支持三方扩展),让组件的使用过程以配置化的形式呈现给开发者,直接对接 SQL 做数据组织或呈现。
  • 另一方面,提供一套完备的变量数据体系和程式化的事件动作响应机制,让开发者根据这种程式化的模式,快速地完成各种复杂的业务数据持久化操作。

【图二 无远开发平台 所见即所得开发示意】

使用效果

经过实战检验,这种开发模式,比常规开发模式快至少 10 倍,并且迭代及维护成本都大大降低。目前已有上万名开发者使用该平台,完成了涵盖各个行业各种复杂信息管理应用场景的系统,

案例

与其他低代码(low-code)开发工具只能开发简单的业务系统不同,无远开发平台 基于Z-Model 理论在开发模型上的完备性,支持全业务场景开发,没有任何技术限制

欢迎尝试并指教

收起阅读 »