uniapp 常见方法及一起踩过的坑

4,755 阅读6分钟

uniapp 中使用oss上传视频 截取第1帧图片 阿里云oss 其他oss可查看文档

<原视频URL>?x-oss-process=video/snapshot,t_7000,f_jpg,w_800,h_600,m_fast

参数描述取值范围
t指定截图时间。[0,视频时长] 单位:ms
w指定截图宽度,如果指定为0,则自动计算。[0,视频宽度] 单位:像素(px)
h指定截图高度,如果指定为0,则自动计算;如果w和h都为0,则输出为原视频宽高。[0,视频高度]单位:像素(px)
m指定截图模式,不指定则为默认模式,根据时间精确截图。如果指定为fast,则截取该时间点之前的最近的一个关键帧。枚举值:fast
f指定输出图片的格式。枚举值:jpg和png
ar指定是否根据视频信息自动旋转图片。枚举值:auto、h和w各枚举值说明如下: auto:指定在截图生成之后根据视频信息进行自动旋转。 h:指定在截图生成之后根据视频信息强制按高大于宽的模式旋转。 w:指定在截图生成之后根据视频信息强制按宽大于高的模式旋转。

uniapp 打开微信小程序

社区地址

uniapp 城市三级联动地理位置解析

需求是给到了位置三级联动,需要打开地图显示该位置
仅app生效,引用plus,代码如下

// #ifdef APP-PLUS
plus.maps.Map.geocode(region,{city:city},
function(event) {
    var address = event.address; // 转换后的地理位置
    var point = event.coord; // 转换后的坐标信息
    var coordType = event.coordType; // 转换后的坐标系类型
    uni.openLocation({
        latitude: point.latitude,
        longitude: point.longitude,
        name:address,
        success: function () {}
    });
},
function(e) {});
// #endif

region:详细地址,如"海淀区大钟寺地铁站"
city:城市,如“北京”

uniapp 使用scroll-view组件在ios 10.3无法滑动问题

解决方案:在scroll-view组件上面设置高度height

uniapp更新过最新版本出现的问题

应用清除缓存方法

5+插件链接地址

ios中默认勾选了使用广告标识

uniapp自定义tabbar凸起按钮(只支持APP)

这个里面有一个bug,就是点击跳转二级页面的时候绘制的图片会在动画上面一起显示

  • 解决方法: 改变跳转动态的形式 animationType: "slide-in-right"
  1. 在pages.json中定义tabbar属性
"tabBar":{
	"color":"#999999",
	"selectedColor":"#3D97FF",
	"backgroundColor":"#FFFFFF",
	"borderStyle":"#dcdcdc",
	"list":[
		{
			"pagePath":"pages/shop/index",
			"text":"商城",
			"iconPath":"static/icons/icon-store.png",
			"selectedIconPath":"static/icons/icon-select-store.png"
		},
		{
			"pagePath":"pages/category/index",
			"text":"分类",
			"iconPath":"static/icons/icon-category.png",
			"selectedIconPath":"static/icons/icon-select-category.png"
		},
		{
			"pagePath":"pages/center/index",
			"text":"酷易充",
			"iconPath":"static/icons/icon-logo.png",
			"selectedIconPath":"static/icons/icon-select-logo.png"
		},
		{
			"pagePath":"pages/shopcar/index",
			"text":"购物车",
			"iconPath":"static/icons/icon-shop-car.png",
			"selectedIconPath":"static/icons/icon-select-shop-car.png"
		},
		{
			"pagePath":"pages/mine/index",
			"text":"我的",
			"iconPath":"static/icons/icon-mine.png",
			"selectedIconPath":"static/icons/icon-select-mine.png"
		}
	]
}
  1. 在页面中使用plus.nativeObj功能绘制图片
app.globalData.bitmap = new plus.nativeObj.Bitmap('bmp1') //新增原生图片
app.globalData.bitmap.loadBase64Data(
	'data:image/png;base64,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',
	function() {},
	function(e) {}
)
this.createtab()
var icon = plus.nativeObj.View.getViewById('icon') //根据图标id取到图片
if (icon) {
	setTimeout(function() {
		icon.show()
	}, 100)
}
methods: {
    createtab() {
		const app = this.$scope
		// #ifdef APP-PLUS
		//设置水平居中位置
		var leftPos = Math.ceil((plus.screen.resolutionWidth - 125.5) / 2)
		app.globalData.view = new plus.nativeObj.View('icon', {
			bottom: '20px',
			left: leftPos + 'px',
			width: '125.5px',
			height: '41.5px'
		})
		app.globalData.view.drawBitmap(app.globalData.bitmap, {
			//使用canvas画布把图标画到tabbar对应位置上
			tag: 'font',
			id: 'icon',
			// src: 'static/icons/selectedLu.png',
			position: {
				top: '0px',
				left: '5px',
				width: '50px',
				height: '100%'
			}
		})
		app.globalData.view.addEventListener(
			'click',
			function(e) {
				//添加事件监听,点击触发
				uni.switchTab({
					//连接到页面lu
					url: '/pages/center/index'
				})
			},
			false
		)
		app.globalData.view.show()
		// #endif
	}
}

uniapp 使用 scroll-view 方法里面的子元素如果有阴影被隐藏的问题

  1. 使用获取节点信息来动态设置宽度
var view = uni.createSelectorQuery().selectAll('.scroll-content .li')
view.boundingClientRect(data => {
	this.width = (data[0].width + 8) * 4 - 4
}).exec()
特别注意: 如果是动态获取的数据,需要有一个默认的空数据,否则有可能报错

uniapp 使用scroll-view 组件竖向滚动的问题

  • 一定要给scroll-view设置高度

解决 uniapp 图片 mode="widthFix" 页面闪烁

.img {
    height: 0; width: 100%;height: auto
}

uni-app 中如何打开外部应用,如:浏览器、淘宝、AppStore、QQ等

dcloud链接地址

ios打开第三方应用问题

  • 需要在manifest.json文件的源码视图中加入找到ios节点加入"urlschemewhitelist" : [ "baidumap", "iosamap" ]
  • 在进行跳转到第三方应用并需要传递参数时需要把中文通过 js函数encodeURIComponent进行加密

uniapp动态设置原生按钮标题

连接地址

常见的URLscheme

平台pnameaction
微信com.tencent.mmweixin://
QQcom.tencent.mobileqqmqq://
新浪微博com.sina.weibosinaweibo://
淘宝com.taobao.taobaotaobao://
支付宝com.eg.android.AlipayGphonealipay://
京东com.jingdong.app.mallopenApp.jdMobile://
优酷com.youku.phoneyouku://
高度地图com.autonavi.minimapiosamap://
百度地图com.baidu.BaiduMapbaidumap://

上架应用商店中的问题

重磅:uni-app V3版本公测,App端性能、功能大幅提升;小米商店/应用宝隐私问题公告;关于Apple发布的App Updates for HTML5 Apps 的说明;uni统计月活破2亿

上架小米应用程序商店失败