博客 页面 2

capacitor相关准备

比较capacitor和cordova后发现,插件开发方式有着显著区别,cordova通过js桥接java/oc代码,capacitor感觉更简单,更像是直接通过装饰器@PluginMethod将原生方法暴露出来。

虽然本质可能差不多,但capacitor的代码更现代化,更易阅读。

 

所需capacitor插件:

https://github.com/capacitor-community/bluetooth-le

nodejs、python蓝牙ble开发库

 

noble/noble: A Node.js BLE (Bluetooth Low Energy) central module (github.com)

noble/bleno: A Node.js module for implementing BLE (Bluetooth Low Energy) peripherals (github.com)

pybluez/pybluez: Bluetooth Python extension module (github.com)

这两个库都是支持全平台的(Linux/Windows/MacOS)

比较特殊的是,nodejs的ble库分为两套,noble做中心设备,bleno做外围设备。

angular开发小程序

angular终于能开发小程序了

wszgrcy/angular-miniprogram: 使用Angular开发小程序 (github.com)

 

Angular开发小程序

  • 通过修改Angular实现使用Angular开发小程序
  • 本项目实现的目的很简单也很纯粹,就是告诉大家.框架无高低,使用的人,有高低

视频简介

开发模板

修改内容

  • builder

    修改用于支持自定义构建

  • component 编译时

    通过提前解析获得模板与样式,转换为小程序所需的

  • 全局变量

    用来支持ngZoneAngular默认全局引用

  • platform

    通过实现自定义的 platform,给予小程序的启动上下文支持

  • renderFactory

    原渲染工厂支持的是 dom 渲染,但是小程序不需要

  • 主出口重建

    主出口预先加载相关依赖,为后面的 page 做准备

  • 文件系统监听修改

    需要在预处理结束时,清除文件缓存

增加内容

  • 组件与页面的注册函数

    只有被注册,还会自动的查询依赖关系与生成

  • 相关生命周期的传递

    小程序自带的一些生命周期

  • 小程序相关 token.

    APP_TOKEN可以获得 App 实例 COMPONENT_TOKEN,PAGE_TOKEN可以获得组件对应的小程序组件实例

已实现内容

  • 变更检测
  • Input,Output
  • 依赖注入
  • ng-content
  • ngIf,ngSwitch,ngFor

    对于其他指令及自定义指令,暂未实现

  • 小程序大部分功能

未实现

可实现的功能

  • http
  • 管道
  • 非结构型指令
  • 结构型指令的非引用传递或有限传递
  • 路由的部分实现

    路由是否实现主要看小程序的使用场景需不需要路由这个东西

  • 表单
  • 自定义组件

不可能实现的功能

  • 无限制的结构型指令

    除非模板运行动态按需加载

其他平台的支持

  • 目前功能尚未完善,不对多余的平台做支持
  • 目前仅支持微信小程序,但是未来重构完善后,会添加其他平台的小程序支持

准备做的

component 的 template 重写

  • 之前是通过完全重写实现的值绑定与更新,但是是因为有一个技术没法实现所以才采取点方案.
  • 目前已经可以通过替换调用函数实现这个,所以重新 template
  • 重写后将会使管道,表单,非结构型指令的支持

7月服务器升级公告

因近期用户数和设备数暴增,服务器出现请求瓶颈,导致核心服务响应迟缓,影响了大量用户正常使用我们的服务,该影响可能会持续到7月12日24时。对此我们万分抱歉,目前我们已增加服务器资源,优化缓存策略,着力解决该问题。

点灯科技

7月12日

cordova-android报错

使用Cordova-android@9.1.0时,编译报错:

> Task :app:mergeDebugResources FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ‘:app:mergeDebugResources’.
> This project uses AndroidX dependencies, but the ‘android.useAndroidX’ property is not enabled. Set this property to true in the
gradle.properties file and retry.

直接修改gradle.properties中的配置不行,再次编译又会被还原。

解决办法:

在config.xml的 <platform name=”android”>中添加:

<preference name=”AndroidXEnabled” value=”true” />

开源规则引擎

 

https://github.com/CacheControl/json-rules-engine

https://github.com/vinzdeveloper/json-rule-editor

ionic/cordova 编译android app卡在> Task :app:preDebugBuild

原因就是因为maven源被强了。

解决办法:

将相关源改成阿里的

在andoid项目文件夹下查找“repositories {”,将其中内容替换为:

maven{url ‘https://maven.aliyun.com/repository/public’}
maven{url ‘https://maven.aliyun.com/repository/google’}
maven{url ‘https://maven.aliyun.com/repository/gradle-plugin’}