获得徽章 9
- 今日复盘10-29
今天主要是继续学习webpack。
工作中遇到的技术问题:
1、运行npx webpack报错【[webpack-cli] Error: error:0308010C:digital envelope routines::unsupported】
解决:node版本问题,我把版本17卸了,重新装16就好了github.com
解决思路:
(1)搜索 webpack+错误代码
(2)看网友回答可能是node版本问题
(3)尝试一下,卸载重装node版本
如何卸载重装node版本?blog.csdn.net
(4)重新运行webpack `npx webpack`,成功打包,生成了一个dist文件夹
情绪问题:
昨天卡在了使用webpack上,非常受挫,好在今天终于解决了。
学到了什么:
webpack的一些基本概念和使用。展开赞过41 - 今日复盘10-28
今天主要是学习webpack。美化app检测版本页面。
学习webpack:www.webpackjs.com
1、是什么?
用来构建大型工程化项目的工具。(用于把开发的代码转化为运行代码)
2、解决了什么问题?
浏览器端的模块化带来的问题
效率问题:更多的模块带来了更多的js文件,更多的js文件带来了更多的网络请求,降低了页面的访问效率;
兼容问题:浏览器目前仅支持ES6的模块化标准,并且还存在兼容性问题;
工具问题:浏览器不支持npm下载的第三方包
3、这个问题的根本原因是什么?
在浏览器端,开发时态(devtime)和运行时态(runtime)的侧重点不一样
开发时态,devtime:
模块划分越细越好
支持多种模块化标准
支持npm或其他包管理器下载的模块
能够解决其他工程化的问题
运行时态,runtime:
文件越少越好
文件体积越小越好
代码内容越乱越好
所有浏览器都要兼容
能够解决其他运行时的问题,主要是执行效率问题
4、解决办法
需要有一个工具,这个工具能够让开发者专心的在开发时态写代码,然后利用这个工具将开发时态编写的代码转换为运行时态需要的东西。这个工具叫构建工具
5、如何安装使用
npm i -D webpack webpack-cli
卡死,学不下去了。。。
情绪问题:
非常混乱的一天,运行代码一直报错,好难啊。
学到了什么:
webpack是一个打包模块(js文件,png等一切皆为模块)的工具,解决了运行代码时的兼容和效率问题。展开赞过评论1 - 今日复盘10-27
今天主要是给app新增一个版本检测功能;学习webpack;
工作中遇到的技术问题:
1、用npm install运行文件的时候报错【npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路 径,请确保路径正确,然后再试一次。】
解决:重新安装了npm,按照以下步骤配置npm环境变量就解决了。
问题原因:npm环境变量配置问题
安装npm:www.cnblogs.com
解决方案:blog.csdn.net
2、webapp如何检测版本更新?
解决:比较客户端版本号和服务器的版本号,如果客户端版本小于服务器版本就提示更新。www.html5plus.org
情绪问题:
平常心展开赞过21 - 今日复盘10-26
今天主要是把小程序项目里的手机号验证码登录改成手机号授权登录。学习oAuth授权协议。
工作中遇到的技术问题:
1、小程序手机号授权登录<view open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></view>点击无效?
解决:把<view></view>改成<button></button>就好了developers.weixin.qq.com
2、 小程序获取手机号登录,第一次会返回pad block corrupted, 再次登录就成功
解决:在获取手机号之前,调用wx.login()方法
原因:可能是session_key不一致www.jianshu.com
解决步骤:
1、获取code:用wx.login()方法developers.weixin.qq.com
2、获取手机号developers.weixin.qq.com
3、调用登录接口,参数code,encryptedData,iv
情绪问题:
平常心
学到了什么:
小程序如何手机号授权登录。展开赞过101 - 今日复盘10-25
今天主要是学习OAuth协议。改bug。
工作中遇到的技术问题:
1、webapp登录完把token存在localStoage里,然后杀死app,localStoage就获取不到了
解决:登录完把token存在plus.storage里`plus.storage.setItem("currentUser_token",data.data.token);`
2、OAuth协议是一种关于授权的开放协议。主要用来给第三方应用(比如:知乎)颁发令牌(token)。
应用场景:我通过微信登录网页版知乎,知乎先向微信申请授权(即,申请授予知乎获取我信息的权利),我微信同意后给知乎一个令牌,知乎拿着令牌获取我的信息(比如说微信头像)
情绪问题:
平常心
学到了什么:
终于知道授权码(code)跟令牌(token)的关系了,原来是微信给知乎code,知乎根据code向微信发送获取token的请求,微信再给知乎token,知乎再拿着token去获取用户的信息。展开评论点赞 - 今日复盘10-22
今天主要是学习移动端关于像素的一些概念;调试蓝牙项目的bug。
工作中遇到的技术问题:
1、如果先用一个苹果手机通过获取到的设备id绑定到一个账户上(比如说小明的账户),然后小明换成安卓手机,此时小明的账户上会有这个设备,然后他通过设备id去连接设备,会连接不成功,因为这个设备id是苹果手机获取到的设备id,在不同的手机系统下,设备id是不同的,那么如何让小明换不同的设备都能连接成功?
未解决:本来想通过BluetoothDeviceInfo.advertisData(蓝牙设备的广播数据段中的ManufacturerData数据段)去解析mac地址,可惜,别的设备都advertisData,这个设备就没有。。反应给客户,客户说这个问题先放放
2、移动端尺寸:设备像素、css像素、屏幕尺寸、像素密度(PPI)、像素比(DPR)
(1)像素分为设备像素和css像素;
(2)设备像素对应的是手机中的分辨率,一出厂数量就固定了,永远不会变;
(3)像素密度PPI由设备像素决定,PPI = 屏幕斜边像素/屏幕尺寸,屏幕斜边像素等于屏幕分辨率的平方相加再开根;PPI越大代表设备像素点越多, 图像越清晰;PPI如果翻一番,设备像素点数量增加四倍,那么每一个点占的空间就被压缩,缩小成原来的1/4;
(4)css像素是会变的,css像素跟设备像素之间的关系就是像素比DPR;DPR = 物理像素/css像素,如果像素比为2,代表一个css像素占两个设备像素点;像素比的意义就是能够让图像在高清屏下正常显示,比如有时候UI设计的图在手机上显示出来有点模糊,那可能UI在设计的时候就要做大点,因为现在手机的分辨率越来越高了,即设备像素点越来越多了,按照iphone6的尺寸设计可能在现在主流手机上会不够清晰。
情绪问题:
平常心
学到了什么:
如果切出来的UI图在手机上模糊怎么办?让UI做图的时候分辨率做大点展开评论点赞 - 今日复盘10-21
今天主要是学习微信小程序、移动端
学习到的知识点:
1、分辨率表示屏幕上有多少个发光的点
2、app分为三类:原生App、web App、混合App
原生App:分为IOS开发和Android开发,开发语言为c和java,优点是效率高
web App:使用语言和html;优点是更新快、成本低
Hybrid App:是原生app和webapp的混合
3、手机操作系统分为harmonyOS (华为公司)、ios(苹果公司)、android(谷歌公司)、windows(微软公司)
4、移动设备市场份额tongji.baidu.com
情绪问题:
平常心
学到了什么:
移动端的一些概念展开赞过评论1 - 今日复盘10-20
今天主要是用HbuilderX和iPad联调蓝牙;学习小程序组件间如何通信。
工作中遇到的技术问题:
1、HbuilderX如何与iPad联调蓝牙项目?
解决:
(1)HbuilderX新建App项目
(2)平板上安装华为手机助手
(3)数据线连接电脑与平板
(4)平板-设置-开发者-usb调试 一些权限都打开
(5)HbuilderX点进新建的app项目,点击运行-运行到手机或模拟器
解决思路:
(1)电脑与平板连接
(2)允许usb传输数据
2、小程序组件间如何传递数据?
(1)数据绑定【父组件向子组件传递数据】
(2)this.selectComponent()【父组件向子组件传递数据】
(3)this.triggerEvent()【子组件向父组件传递数据】
情绪问题:
平常心
学到了什么:
练习过再看学习视频比直接看视频学习效果更好。展开评论点赞 - 今日复盘10-19
今天主要是学习小程序、调试新的蓝牙项目。
工作中遇到的技术问题:
1、H5plus的Bluetooth模块如何搜索设备、连接设备、获取数据?
解决:
(1)初始化蓝牙模块plus.bluetooth.startBluetoothDiscovery
(2)开始搜索附近的蓝牙设备plus.bluetooth.startBluetoothDevicesDiscovery
(3)监听搜索到新设备的事件plus.bluetooth.onBluetoothDeviceFound
(4)连接低功耗蓝牙设备plus.bluetooth.createBLEConnection
(5)[若已知服务id,该步骤可跳过]获取蓝牙设备的所有服务plus.bluetooth.getBLEDeviceServices
(6)[若已知特征值id,该步骤可跳过]获取蓝牙设备指定服务中所有特征值plus.bluetooth.getBLEDeviceCharacteristics
(7)启用低功耗蓝牙设备特征值变化时的notify功能,订阅特征值plus.bluetooth.notifyBLECharacteristicValueChange
(8)监听低功耗蓝牙设备的特征值变化事件plus.bluetooth.onBLECharacteristicValueChange
(9)根据业务需求处理数据
情绪问题:
平常心
学到了什么:
蓝牙项目连接倒不难,主要可能涉及的问题有是否订阅不到数据、需要主动读取数据、设置蓝牙最大传输单元,如何处理数据等,不同的设备要求不一样,在这上面会吃很多亏,碰到不规范、啥也不懂误导人的对接人真的很崩溃,很搞心态,要注意及时调整、稳定情绪,只要最后把问题解决就行。展开等人赞过14 - 今日复盘10-18
今天主要是微信小程序重新录屏设备操作、学习小程序自定义dialog组件。
工作中遇到的技术问题: 具体文章在专栏【微信小程序里】
1、微信小程序如何页面间传值?
(1)通过缓存setStorage传值,举例:把参数id从a页面传到b页面
(2)通过<navigator></navigator>传值,只适合传简单的值
(3)通过wx.navigator传值
2、微信小程序如何在页面的js里改变自定义组件的值?
(1)先在页面js里获取组件对象, this.selectComponent('#dialog')
(2)调用组件对象的方法,this.dialog.showDialog()
3、如何在页面的js里使用组件的回调?
triggerEventdevelopers.weixin.qq.com
// dialog.js
Component({
methods() {
cancelEvent(){
// 触发回调
this.triggerEvent('cancelEvent')
}
}
})
// index.wxml
<dialog id="dialog"
title="标题"
bind:cancelEvent="cancelFn"
></dialog>
// index.js
// 由组件内部发起的事件
cancelFn(){
}
情绪问题:
平常心
学到了什么:
(1)this.selectComponent('#dialog')
(2)this.triggerEvent('cancelEvent')展开赞过评论1