赞
踩
课程地址:【新课uniapp零基础入门到项目打包(微信小程序/H5/vue/安卓apk)全掌握】 https://www.bilibili.com/video/BV1mT411K7nW/?p=12&share_source=copy_web&vd_source=b1cb921b73fe3808550eaf2224d1c155
目录
2.4.9 live-player 和 live-pusher 实时音视频录制和播放
uni-app官方网站:https://uniapp.dcloud.net.cn/
为什么要学习uniapp?
1、一套代码可以打包到不同的应用平台;一套代码编到十几个平台,这不是梦想。眼见为实,扫描以下二维码,亲自体验最全面的跨平台效果!
比较常用的平台如下
2、方便入手,就是使用vue语法写小程序;
3、丰富的生态环境,插件众多。
开发工具:HBuilderX,uniapp使用HBuilderX,两者都是一家公司的,DCloud公司(国产团队)。
主题:绿柔、雅蓝、酷黑
1、新建项目。
2、新建uni-app项目
新建uni-app项目、选择默认模板
项目名称、项目目录、选择vue2版本
项目创建成功。
项目基本构成
详细构成
不使用unicloud时的项目目录及文件(上面有些目录和文件在下面没有提及,有的是打包后会生成的)
1 内置浏览器预览
选择运行,选择第2个,内置浏览器浏览
2 外置浏览器浏览
1 配置,选择下面的配置Web服务器。
2 选择谷歌浏览器打开的话,就配置谷歌浏览器的安装路径
3 然后选择外置浏览器的chrome浏览器运行
运行成功,此时是pc端的页面。
单击右键->检查->设备改为手机。
3 小程序浏览
1 配置
选择图示下面的运行设置
配置微信开发者工具的安装路径。
这里要安装微信开发者工具,且微信登陆。
2 运行,选择“运行到小程序模拟器”的第一项,微信开发者工具。
运行失败,到微信开发者工具里打开设置,找到安全设置,打开服务端口。
此时再运行,即可在微信开发者工具里运行uni项目。
以上介绍了浏览器和小程序上的预览,还可以打包成app,但是配置起来比较麻烦,先不说这么多了。
可以随便选择预览窗口,浏览器或者小程序都可以。
index.vue
vue的template里只能有一个盒子view。
- <template>
- <view class="box">
- <h1>
- <span class="row">uniapp</span>入门
- </h1>
- </view>
- </template>
-
- <script>
- export default {
- }
- </script>
-
- <style lang="scss">
- .box {
- width: 100px;
- height: 100px;
- background-color: lightpink;
- h1 {
- font-size: 40px;
- color: red;
- .row {
- font-style: italic;
- }
- }
- }
- </style>
微信开发者工具,个人体会,就是微信小程序的开发工具。
pages文件夹,右键选择“新建页面”,按下图操作。
创建成功后看到pages.json文件里多了一个新页面
将list页面挪到index上面。
这样list就放在首页了。
通过这个操作,实现哪个页面,就显示当前页面。
新页面标题
其他全局文件的配置。
找到网站的全局文件一栏https://uniapp.dcloud.net.cn/collocation/pages.html
以下就是页面可配置的属性,不同小程序之间有一定的差异。
例如,配置页面导航栏的背景色和文字颜色。
页面效果如图
主要是globalStyle
uniapp官网的组件https://uniapp.dcloud.net.cn/component/
小程序的组件https://developers.weixin.qq.com/miniprogram/dev/component/
上述两个的组件十分相似,因为在小程序出现后,uniapp才出现。而且uniapp通过微信小程序的写法完成了其他小程序的写法。
小程序官网有的东西,uniapp里都有。uniapp有的,小程序里没有。uniapp的包容性更强,东西更多,包含了vue组件等。
如果单纯想开发微信小程序,建议去学习微信小程序的课程。
其他组件,可以去简书、掘金里去找说明。
view标签比div标签更强,是uniapp自己封装的组件。
何为组件:组件可以理解为一个小模块,将公用的功能封装起来。
使用
- <template>
- <view class="out">
- <view class="box">
- </view>
- </view>
- </template>
类似以前用的div。
注意1:
- .out {
- .box {
-
- }
- }
会自动解析为
.out .box { }
注意2:
rpx:响应式单位。
例如,以px为单位的div,
- .out {
- .box {
- width: 200px;
- height: 200px;
- background-color: pink;
- }
- }
在不同机型上的绝对大小是一样的
而要是想生成一个全屏。
使用响应式单位rpx页面样式与布局 | uni-app官网
750*1334,是iphone6的屏幕分辨率,只需要记750。
以px为单位的固定大小的长度是不响应的,所以建议使用rpx响应式单位。
每个平台的图标不完全相同。
例如
- <view class="box">
- <icon type="success" size="26"/>
- </view>
效果
text替换之前的span标签。
text还有一些特别的属性,可以去官网看text组件 | uni-app官网
滑动,左右滑动。
例如,这里有5个220rpx*220rpx大小的盒子,但是边框高度限制为220rpx
代码
- <scroll-view class="scroll">
- <view class="group">
- <view class="item">
- 111
- </view><view class="item">
- 111
- </view><view class="item">
- 111
- </view><view class="item">
- 111
- </view><view class="item">
- 111
- </view><view class="item">
- 111
- </view>
- </view>
- </scroll-view>
样式style
- .scroll {
- border: 1px solid red;
- box-sizing: border-box;
- height: 220rpx;
- .group {
- .item {
- width: 220rpx;
- height: 220rpx;
- background: blue;
- }
- }
- }
问题:希望能将蓝色小块做成横向滑动的效果。
p7
首先,将蓝色小块改为行级块元素。处理一下后
scroll-view的滚动属性。
添加scroll-x横向滚动属性。
效果
蓝色盒子可以滑动,底部有滚动栏。
scroll-y同理,这里不再演示。
scroll-view的其他属性可以等js学习后再尝试。
像移动端轮播图的实现,就是通过swiper实现的。
与scroll-view左右滑动不同,swiper每次就滑动一屏。
swiper-item,swiper的子元素
属性circular,即循环滑动。
此外还有自动切换时间autoplay,用interval设置切换时间。
此外还有轮播图下面的指示点,有兴趣可以自己试一下。
image和video是最常用的媒体组件。audio(音频)和video(视频)几乎一样。camera是相机组件。
image标签的使用
<image src="/static/logo.png" mode=""></image>
注意:1、反斜杠/代表项目主体,这个src是绝对路径。2、src也可以是网络图片的地址
效果
效果:绿色的图变形了。
但是html支持的img标签对应的图片不会变形。(小程序不支持html标签)
原因:image组件有一个默认的宽高,320px*240px。
解决方法:1 外加一个类,来额外控制宽高。
p8 8:15
mode不同取值对应的效果。
一般只显示最小的边,也就是aspectFill,长边多余的地方会裁剪掉。
其他的了解下就行了,用到的时候再说。
除了mode之外,还有其他的属性
懒加载 lazy-load,指定位置后才会加载图片,这样加载速度比较快。(没看明白为什么速度快)
webp 等等
video与html的video是一样的,只是增加了一些属性和方法。
<video src="../../static/logo.mp4" mode=""></video>
video的属性和方法
1、H5不允许自动播放,所以autoplay不生效;
2、muted可以自动播放,不过是静音播放;
3、loop 循环播放;
4、initial-time 视频初始播放位置;
其他的属性可以用到的时候好好研究下。
直播模块会用到。
老师多做H5和微信小程序,由于camera不支持H5,兼容性太差,所以没有对此有了解。
属性比较简单,用到的话可以去研究下。
p10 3:00
举例
<button size="mini"></button>
此外还有picker,平台差异化,所以也就不说了。
uView还提供了Calendar日历,Slider滑动选择器,Picker选择器,效果更好一些。
后面通过案例练习。
该组件类似html的a组件,但只能跳转本地页面。目标页面必须在pages.json中注册。
navigator的属性
例如,实现list和index页面的跳转。
在index页面添加一个navigator组件
<navigator url="/pages/list/list">新闻列表</navigator>
效果
点击新闻列表,会跳转到list页面。
在list页面添加navigator组件,点击时可以跳回index首页。
<navigator url="/pages/index/index">今日新闻</navigator>
效果,点击今日新闻,跳回首页。
注意1:
点击标题左边的箭头,可以返回上一个页面。
这是open-type属性控制的,默认取值是navigate。
(1)open-type取值为navigate时,对应uni.navigateTo的功能。对应:保留当前页面,跳转到应用内的某个页面。所以首页还是保留的,只是跳转到了list页面。
(2)open-type取值为redirect的时候,关闭当前页面,跳转到应用内的某个页面。
与navigate不同在于,取值为redirect时,相当于打开了新的页面,此时没有返回键(标题左侧箭头)。
<navigator url="/pages/list/list" open-type="redirect">新闻列表</navigator>
效果,
此时标题“新闻列表”左侧没有箭头。
场景:希望点开的新页面是一个独立的页面,且有些分享按钮,此时要求新页面不可追溯到上一个页面,那么就将open-type属性值置为redirect。
navigate和redirect都显示跳转到非tabBar页面。当页面最下方有相应菜单的时候,此时无法进行跳转。
(3)open-type取值为switchTab时,跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。uni.navigateTo(OBJECT) | uni-app官网
相当于关闭所有页面。
如果想要跳转tabBar页面时,就需要使用switchTab页面。不过reLaunch用的比较多。与navigate和redirect是一对一样,switchTab与reLaunch也是一对。两者区别在于,reLaunch路径可以携带参数,switchTab路径后面不能带参数。这两个都是可以打开导航菜单的内容的。
(4)navigateBack,返回上一页。一般会通过页面栈的方式实现。关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages()
获取当前的页面栈,决定需要返回几层。uni.navigateTo(OBJECT) | uni-app官网
以上就是open-type的属性取值方式,也就是跳转方式如何选择的问题。html的a标签也有多种跳转方式,本窗口打开还是新窗口打开。
当 open-type 为 'navigateBack' 时有效,表示回退的层数
剩下的就是交互的问题了。
注意:navigator组件不仅可以插入文字,还可以插入图片。这里就不多余记录了。
电脑查看京东手机端,电脑打开京东网页,F12,切到手机端浏览。
在小程序下方创建一个导航菜单,需要做一个配置文件。
官方方式
步骤1,打开官网的全局文件。pages.json 页面路由 | uni-app官网
步骤2,打开pages.json文件,(此时有3个页面,首页、新闻列表、关于我们),配置好3个页面的标题。
步骤3,打开tabBar说明。
tabBar是对象类型,可以看下面的官网案例。
步骤4,在pages.json文件中添加tabBar对象,注意,tabBar与pages和globalStyle是同层级的,
添加tabBar对象如下,
效果,
实现了分tab跳转。
注意1:iconfont下载图标
选中时的样式,也下载下来。
然后将tabBar需要的文件都放到static文件夹下。
注意2:添加tabBar后,之前页面的跳转会失效,即navigator组件的跳转(方式选navigate和redirect都不能跳转)。
看下图,navigator组件在open-type取navigate时,url要填非tabBar页面的路径。
分析一下:在A页面可以跳转B页面,同时B页面标题左侧会有返回上一页的箭头。但是A和B页面都是tabBar页面。单独点击B页面对应的tab按钮,此时如果B页面标题左侧有箭头,那么点击这个箭头应该返回到哪个页面?这就不合适了。
但是可以怎么跳转呢?加open-type=“reLanuch”,对应uni.reLanuch,关闭所有页面,打开到应用内的某个页面。uni.navigateTo(OBJECT) | uni-app官网。这样就可以打开tabBar页面了。
记忆方式:open-type默认是navigate,什么都不设置就是navigate;另外就是reLanuch(设置tabBar);由于switchTab路径不能携带参数,所以干脆就reLanuch(路径可携带参数)。
使用reLanuch,在A页面点击可以跳转到B页面,同时点击tabBar也可以打开B页面。
插播:学习git操作的网站:learn git branching。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。