【uniapp】【微信小程序】微信小程序报错集锦(一)

这篇具有很好参考价值的文章主要介绍了【uniapp】【微信小程序】微信小程序报错集锦(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【uniapp】【微信小程序】微信小程序报错集锦(一)

错误一:

"errMsg":"hideTabBar:fail not TabBar page"
根因分析
这种情况一般是在小程序中为了隐藏tabbar调用的,但是有些页面并没有tabbar展示,而此时调用该function会fail,如果没有fail函数,会直接抛出报错。

定位步骤

  • 全局搜索是否使用了hideTabBar函数
  • 找到之后,添加fail和success函数
uni.hideTabBar({
	success: () => {
	},
	fail: () => {
		// 捕获报错,防止没有tabbar页面调用后控制台报错
	}
});

错误二:

errMsg: "canvasToTempFilePath:fail fail canvas is empty"
hidetabbar:fail not tabbar page,uni-app,微信小程序,view design,小程序,vue
根因分析
uni.canvasToTempFilePath触发了fail回调,报错信息是找不到canvas的信息。原因是我把这个功能放在了自定义组件里面,需要传入上下文信息。
信息来源博客
hidetabbar:fail not tabbar page,uni-app,微信小程序,view design,小程序,vue
代码修复

uni.canvasToTempFilePath({
	canvasId: 'poster',
	success: res => {
		// 在H5平台下,tempFilePath 为 base64
		this.downloadPic(res.tempFilePath);
	},
	fail: res => {
		console.log(res)
		uni.showToast({
			title:"下载海报失败",
			icon: 'fail'
		})
	}
}, this) //添加this指向

问题三:
可在浏览器打开此网页来下载文件
根因分析
手机微信H5浏览器,通过传统的创造a超链接,触发点击进行下载是不允许的。这是为了提升用户体验,避免某些网页未经用户允许就下载未知图片。因此可以考虑通过用户主动长按图片进行图片保存。

超链接下载图片,这种方法在微信H5浏览器里面是下载不下来的。

// #ifdef H5
uni.showLoading({
  title: "下载中"
});

let oA = document.createElement("a");
oA.download = ''; // 设置下载的文件名,默认是'下载'
oA.href = imgUrl;
document.body.appendChild(oA);
oA.click();
oA.remove(); // 下载之后把创建的元素删除
uni.hideLoading();
// #endif

我的解决办法:
下载图片按钮修改成提示长按图片保存,这只是一个提示,没有任何功能。

<!-- #ifdef H5 -->
<view v-if="isShowBtn('download')" class="btn linear-border">
	<u-icon name="download" :size="iconSize"></u-icon>
	长按图片保存
</view>
<!-- #endif -->

对于显示的图片,用户长按就会有弹窗,这种最容易解决,但是我这里有一种场景,就是需要下载海报,海报是用uniapp的canvas画的。这不是图片格式,怎么实现在微信手机浏览器长按保存图片,那就是利用uniapp的canvasToTempFilePath接口,将生成的base64图片编码放到image中显示,这样就能实现长按保存。

<!-- h5PosterSaveImg是图片的base64编码 -->
<u-mask :show='isShowPoster'>
	<view v-if="h5PosterSaveImg" >
		<image :src="h5PosterSaveImg" mode="widthFix"></image>
	</view>
	<canvas v-else canvas-id="poster" :disable-scroll="true" class="poster" :style="{width: canvas.width + 'px',
	height:canvas.height + 'px', 'margin-left': `calc((100vw - ${canvas.width}px)/2)` }"></canvas>
	<view class="flex-row flex-center mt-24">
		<view class="btn linear-border" style="width: 100px;" @click="cancelPoster">
			取消
		</view>
		<!-- #ifdef H5 -->
		<view 
			长按图片保存
		</view>
		<!-- #endif -->
	</view>
</u-mask>
uni.canvasToTempFilePath({
	canvasId: 'poster',
	success: res => {
		// 在H5平台下,tempFilePath 为 base64
		// #ifdef H5
		// 赋值base64
		this.h5PosterSaveImg = res.tempFilePath
		// #endif
	},
	fail: res => {
		console.log(res)
		uni.showToast({
			title: "下载海报失败",
			icon: 'fail'
		})
	}
})

但是还有一种情况,uview的swiper(u-swiper)组件,长按图片根本不触发保存图片的弹出菜单。最后我还是自己写了一个,有需要的自取。最终的显示效果:
hidetabbar:fail not tabbar page,uni-app,微信小程序,view design,小程序,vue
hidetabbar:fail not tabbar page,uni-app,微信小程序,view design,小程序,vue
实现代码:

如果对您有帮助的话,点个关注吧。有什么技术问题都能讨论。
如果想看我是怎么利用uniapp和uview实现开发一次,多端覆盖的,可以看这里:
https://ext.dcloud.net.cn/plugin?id=12603 觉得写的不错麻烦点个赞哦。文章来源地址https://www.toymoban.com/news/detail-761305.html

到了这里,关于【uniapp】【微信小程序】微信小程序报错集锦(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序报错request:fail url not in domain list的处理方法

    安装青提wifi的时候遇到这个问题 request:fail url not in domain list 没有配置服务器域名 1,参考官方文档提供的解决办法(即配置对应的域名) https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html 2,可点击开发者工具右上角 详情-项目设置-不校验合法域名、web-view(业务域名

    2024年02月11日
    浏览(32)
  • uniapp微信小程序openBluetoothAdapter:fail api scope is not declared in the privacy agreement

    uniapp微信小程序在查找蓝牙时报openBluetoothAdapter:fail api scope is not declared in the privacy agreement 昨天还可以正常使用,到了今天在测试连接蓝牙时就报这个问题。刚开始以为是自己的代码哪里出现了问题,因为近期一直在调试蓝牙打印的功能。找了N久都还是一头雾水,包括对比上

    2024年02月06日
    浏览(46)
  • 微信小程序报错 errMsg: “getUserProfile:fail api scope is not declared in the privacy agreement“, errno: 112

    其实就是API没有在隐私协议中声明,需要在小程序后台更新对应的隐私协议 完善并提交信息, 注意:更新好隐私协议,要通过审核的,接口才能正常访问 在审核提交时候,选择采集用户隐私 小程序审核通过后,微信就自动会显示隐私协议弹窗组件,这个组件从10.17 使用官方

    2024年02月05日
    浏览(55)
  • uniapp微信小程序获取经纬度信息报错getLocation:fail the api need to be declared in the requiredPrivateInfos...

    在uniapp微信小程序中使用getLocation时,出现报错  {errMsg: \\\"getLocation:fail the api need to be declared in the requiredPrivateInfos field in app.json/ext.json\\\"} 先检查uniapp里面的manifest.json源码试图里面mp-weixin是否包含以下字段  基本上添加完后运行小程序就可以看到返回的经纬度信息  如果还是出现

    2024年02月03日
    浏览(39)
  • 【uniapp分享微信小程序卡片报错 share:fail [Share微信分享:-3]Unable to send, https://ask.dcloud.net.cn/article/287】

    uniappAPP分享小程序卡片到微信报错share:fail [Share微信分享:-3]Unable to send, https://ask.dcloud.net.cn/article/287 由于官方报错码给的不是特别清晰,所以只能自己试错分析 首先: 满足APP分享到微信小程序基本条件 1.APP和微信小程序绑定在同一开放平台下 报错及解决办法 错误一 解决:

    2024年02月11日
    浏览(33)
  • 解决:uniapp项目打包微信小程序或原生app包(wgt),报错:failed to load config from /xx/xx-mall/vite.config.ts

    项目使用技术: uniapp + vue3 + vite4.0.3 + node(v16.20.0) \\\"@dcloudio/uni-app\\\": \\\"3.0.0-alpha-3081220230731001\\\", \\\"@dcloudio/uni-mp-weixin\\\": \\\"3.0.0-alpha-3081220230731001\\\", \\\"vue\\\": \\\"^3.3.4\\\", \\\"vite\\\": \\\"4.0.3\\\", \\\"engines\\\": {        \\\"node\\\": \\\"=16.20.0\\\",       \\\"pnpm\\\": \\\"=8.0.0\\\" }, 最新测试: 使用 高版本node (v18.15.0), 删除node_module

    2024年02月04日
    浏览(37)
  • 微信小程序- - - - 获取图片报错 getImageInfo:fail

    在实现瀑布流效果时,肯定要需要获取图片的高度数据。微信很人性化的提供了一个API wx.getImageInfo({}) 戳一戳 = 官方地址 注意: 官方代码: 我在使用中遇到如下报错: getImageInfo:fail downlo\\\"getImageInfo:fail download image fail. reason: downloadFile:fail createDownloadTask:fail exceed max download conn

    2024年02月11日
    浏览(26)
  • 【微信小程序】fail url not in domain list 解决方法

    分析:正式上传之后,图片上传报错uploadFile:fail url not in domain list,但是在模拟器上没有报错,这是因为微信公众平台小程序的uploadFile合法域名未添加,模拟器上本地设置选中打勾[不校验合法域名、web-view、TLS版本以及HTTPS证书]不验证域名 解决方法 : (1)、在微信公众平台

    2024年02月13日
    浏览(47)
  • 【微信小程序】getUserInfo: fail privacy permission is not authorized

    2023年8月10日,微信小程序发布了《关于小程序隐私保护指引设置的公告》,然后8月17日晚,微信测试上架整改,部分用户的体验版和开发版遇到getUserProfile和getUserInfo的api报错 104 getUserInfo: fail privacy permission is not authorized 官方对此给出了具体回复: 2023年9月15日之前,此功能

    2024年02月08日
    浏览(32)
  • 微信小程序报错之backgroundfetch privacy fail

    问题出现:调用wx.chooseMessageFile报错(开发者工具中正常) 原因:用户隐私协议中未声明小程序使用此功能 解决 微信公众平台 == 设置 ==服务内容声明 == 更新 审核通过后就可正常使用了! 在调用接口的时候就会弹出弹窗

    2024年04月17日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包