简单的聊聊uniapp和uview组件库的开发

简单的聊聊uniapp和uview组件库的开发

uniapp是一个基于Vue.js的跨平台开发框架,可以同时开发H5、微信小程序、App等多个平台的应用。这样可以减少开发人员的工作量,提高开发效率。

官网:uniapp.dcloud.net.cn/

uView是uni-app生态专用的UI框架,uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码, 可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台(引言自uni-app网)。

官网:v1.uviewui.com/components/...

工具:Hbuilder X

一、安装uView组件库

使用下载的方式安装,能更方便阅读源码,但是每次升级都需要重新下载并覆盖uview-ui文件夹。

​ 在uni-app插件市场右上角选择使用HBuilder X 导入插件或者下载插件ZIP

​ 如果您的项目是由HBuilder X创建的标准uni-app项目,将下载后的uview-ui文件夹,复制到项目根目录。

​ 插件地址:ext.dcloud.net.cn/plugin?id=6...

然后就是按照官网进行样式的引入和组件的引入;

可以使用uview自带的http请求

二、Hbuilder X运行项目的时候,使用外部浏览器打开会出现跨域的问题。

在uniapp的目录里面找到manifest.json文件,找到源码视图,添加以下的代码

js 复制代码
"h5" : {
        "devServer" : {
            "disableHostCheck" : true,
			"proxy":{
				"/api":{
					"target":"http://127.0.0.1:8080",
					"ws": true,
					"changeOrigin": true,
					"secure": false,
					"pathRewrite": {
						"^/api": ""
					}

				}
			}
        }
    },

然后修改baseurl的配置

js 复制代码
process.env.NODE_ENV === 'development' ? '/api' : 'http://127.0.0.1:8080'

但是因为我使用了uview的组件库自带的http请求方式,在拦截配置里面修改,但是后面发现这个问题,会出现一个问题就是会导致Cookie不一样,从而导致接口报错会话过期!!!!!!!!!!!!

最后迫于无奈,只能使用内置的浏览器进行开发。

三、Set-Cookie的微信小程序不能自动带上的问题

在登陆成功之后,把Set-Cookie存在本地,然后请求的时候放到请求头部里面

uniapp有个判断方法来判断当前系统进行操作的,// #ifdef

ini 复制代码
// #ifdef MP-WEIXIN
	let sessionidStr = that.getSessionId(res.header['Set-Cookie'])
	let sessionid = "JSESSIONID=" + sessionidStr
	wx.setStorageSync('sessionid', sessionid); //保存Cookie到Storage
// #endif

上面的代码就是在登陆的成功之后,如果当前是属于微信小程序的话,就进行的操作。把Set-Cookie存到本地

然后在请求的拦截器里面添加到头部信息里面

js 复制代码
Vue.prototype.$u.http.interceptor.request = (config) => {
		// #ifdef MP-WEIXIN
			config.header.cookie =  wx.getStorageSync("sessionid");
		// #endif
	config.url = '/api' + config.url;
		return config;
		// 如果return一个false值,则会取消本次请求
		// if(config.url == '/user/rest') return false; // 取消某次请求
	}

四、css样式和本地图片失效

在运行到微信小程序上面的之后,会发现有不少的自己写的样式会失效的。建议就是使用组件库里面的自带的一些margin和padding的样式。

图片使用,最好是使用绝对路径,这样微信小程序就不会报错了

微信小程序图片报错

JS 复制代码
[渲染层网络层错误] Failed to load local image resource /uni_modules/uview-ui/static/image/videoCover.png 
 the server responded with a status of 500 (HTTP/1.1 500 Internal Server Error) 
(env: Windows,mp,1.06.2307250; lib: 2.33.0)
js 复制代码
<u-image width="100%" height="230rpx" src="/static/image/videoCover.png"></u-image>

还有一种就是系统直接读取后端的图片的时候普遍都会有验证规则,比如我们就是会有cookie的认证,我们读取图片一般都是地址 + 图片ID模式来直接读图,在浏览器端没有问题,但是在微信小程序就会发现cookie不会自动加上,导致读取不了图片,所以可能还需要针对性让后端加一个无权限的读取图片的接口。微信小程序基本是安全的,大概率不存在被人批量泄露。

五、视频播放问题

我们使用了萤石云的播放,在萤石云的官网上面有关于uniapp和微信小程序进行开发的demo,我们可以按照demo的来进行开发。

但是引入的萤石云的js,比较大,相对于微信小程序的不能太大的包来说,有点难受,而且播放也是有些许问题的,所以使用微信小程序的最好方法就是使用引入微信小程序的半屏模式来播放视频,但是需要进行申请,具体操作可以看看官网

所以最后我们是通过跳转小程序来解决这个问题,至于对其他的m3u8的直播流视频,就直接使用video标签进行播放

官网地址:open.ys7.com/help/529

微信小程序播放:open.ys7.com/help/502

相关推荐
昨天;明天。今天。5 分钟前
案例-任务清单
前端·javascript·css
zqx_71 小时前
随记 前端框架React的初步认识
前端·react.js·前端框架
惜.己2 小时前
javaScript基础(8个案例+代码+效果图)
开发语言·前端·javascript·vscode·css3·html5
什么鬼昵称2 小时前
Pikachu-csrf-CSRF(get)
前端·csrf
长天一色2 小时前
【ECMAScript 从入门到进阶教程】第三部分:高级主题(高级函数与范式,元编程,正则表达式,性能优化)
服务器·开发语言·前端·javascript·性能优化·ecmascript
NiNg_1_2343 小时前
npm、yarn、pnpm之间的区别
前端·npm·node.js
秋殇与星河3 小时前
CSS总结
前端·css
BigYe程普3 小时前
我开发了一个出海全栈SaaS工具,还写了一套全栈开发教程
开发语言·前端·chrome·chatgpt·reactjs·个人开发
余生H3 小时前
前端的全栈混合之路Meteor篇:关于前后端分离及与各框架的对比
前端·javascript·node.js·全栈
程序员-珍3 小时前
使用openapi生成前端请求文件报错 ‘Token “Integer“ does not exist.‘
java·前端·spring boot·后端·restful·个人开发