uniapp兼容微信小程序和支付宝小程序遇到的坑

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

1、支付宝不支持v-show

改为v-if。

2、v-html

App端和H5端支持 v-html ,微信小程序会被转为 rich-text,其他端不支持 v-html。

解决方法:去插件市场找一个支持跨端的富文本组件。

3、导航栏处有背景色延伸至导航栏外

兼容微信小程序和支付宝小程序 

uniapp兼容微信小程序和支付宝小程序遇到的坑,uniapp,小程序,uni-app,微信小程序

pages.json:给支付宝的导航栏设置透明

{
	"path": "pages/agent/agent",
	"style": {
		"navigationStyle": "custom",
		"enablePullDownRefresh": false,
		"mp-alipay": {
			"transparentTitle": "always",
			"titlePenetrate": "YES"
		}
	}
}

agent页面:

支付宝加上my.setNavigationBar设置标题文字即可,微信需要自定义导航栏

html: 

<template>
    <view style="height: 100vh;position: relative;">
		<view class="bj"></view>
		<view class="status_bar"></view>
		<!-- #ifndef MP-ALIPAY -->
		<view class="back" @click="back" :style="{ top: menuButton.top + 'px', height: menuButton.height + 'px' }">
			<view class="text1"></view>
			代理中心
		</view>
		<!-- #endif -->
</template>

js:

<script>
	export default {
		data() {
			return {
				menuButton: {}
			}
		},
		onLoad() {
			// #ifdef MP-WEIXIN
			this.menuButton = uni.getMenuButtonBoundingClientRect()
			// #endif
			
			// #ifdef MP-ALIPAY
			my.setNavigationBar({
				title: '代理中心'
			})
			// #endif
		},
		methods: {
			back() {
				uni.navigateBack({
					delta: 1,
				})
			},
		}
	}
</script>

 css:

.bj {
	background: linear-gradient(180deg, #ffbdbd, #ff8f8f);
	height: 460rpx;
	width: 100%;
	position: absolute;
}
.status_bar {
	height: var(--status-bar-height);
	width: 100%;
}
.back {
	position: fixed;
	z-index: 99;
	display: flex;
	align-items: center;
	color: #292929;
}
.text1 {
	margin-right: 14rpx;
	margin-left: 32rpx;
	width: 16rpx;
	height: 16rpx;
	border-left: 2px solid #292929;
	border-top: 2px solid #292929;
	transform: rotate(-45deg);
}

参考:小程序文档 - 支付宝文档中心

4、获取节点信息,支付宝不兼容uni.createSelectorQuery().in中的in

//#ifdef MP-WEIXIN
uni.createSelectorQuery().in(this).selectAll('.content_box').boundingClientRect(res => {
	this.nodeData = res
}).exec();
//#endif
//#ifdef MP-ALIPAY
my.createSelectorQuery().selectAll('.content_box').boundingClientRect().exec(res => {
	this.nodeData = res[0]
})
//#endif

5、客服

open-type="contact" 仅支持:微信小程序、百度小程序、快手小程序、抖音小程序

<!-- #ifdef MP-WEIXIN -->
<button open-type="contact"></button>
<!-- #endif -->

支付宝接入客服:

首先在支付宝开放平台开通蚂蚁智能客服:支付宝开放平台-->控制台-->小程序信息-->在线客服

uniapp兼容微信小程序和支付宝小程序遇到的坑,uniapp,小程序,uni-app,微信小程序

开通后点击小程序的右上角三个点就有客服功能了

uniapp兼容微信小程序和支付宝小程序遇到的坑,uniapp,小程序,uni-app,微信小程序

如果想点击某个按钮时进入客服页面:uniapp兼容微信小程序和支付宝小程序遇到的坑,uniapp,小程序,uni-app,微信小程序

<contact-button
  tnt-inst-id="企业编码"
  scene="聊天窗编码"
  size="咨询按钮大小"
  color="咨询按钮颜色"
  icon="咨询按钮图片url,例如:https://xxx/service.png"
/>

 tips: 企业编码、聊天窗编码在:

uniapp兼容微信小程序和支付宝小程序遇到的坑,uniapp,小程序,uni-app,微信小程序

 uniapp兼容微信小程序和支付宝小程序遇到的坑,uniapp,小程序,uni-app,微信小程序

tips: contact-button本身无法修改样式,若想达到自己想要的效果如:

uniapp兼容微信小程序和支付宝小程序遇到的坑,uniapp,小程序,uni-app,微信小程序

 方法:父元素设置相对定位 + overflow: hidden超出隐藏,子元素里循环很多个contact-button出来,绝对定位,并使用opacity:0隐藏,代码:

<view style="position: relative;width: 100%;overflow: hidden;display: flex;">
	<view>官方客服</view>
	<view class="iconfont iconfanhui1"></view>
	<view class="alipyContact" style="opacity:0; position: absolute;">
		<contact-button size="40rpx" v-for="(item,index) in 15" :key="index" />
	</view>
</view>

 参考:小程序文档 - 支付宝文档中心

6、position: fixed在支付宝小程序会被弹出的键盘顶上去

 如下图: “同意《服务和隐私协议》”被弹起的键盘带上来了

 uniapp兼容微信小程序和支付宝小程序遇到的坑,uniapp,小程序,uni-app,微信小程序

7、uniapp小程序超出限制:Error: 分包大小超过限制,main package source size 4199KB exceed max limit 2MB

改了几行代码上传时发现超过限制,解决方法: 

uniapp兼容微信小程序和支付宝小程序遇到的坑,uniapp,小程序,uni-app,微信小程序

uniapp兼容微信小程序和支付宝小程序遇到的坑,uniapp,小程序,uni-app,微信小程序参考: 

https://www.cnblogs.com/Denny_Yang/p/16769455.html

 8、uniapp 使用 require 绝对路径引入文件时,报错“文件查找失败”

 我在 main.js 中使用绝对路径引入:

// 引入请求封装,将app参数传递到配置中
require('/config/request.js')(app)

 出现:

uniapp兼容微信小程序和支付宝小程序遇到的坑,uniapp,小程序,uni-app,微信小程序

原因:

参考:js 文件引入 | uni-app官网

uniapp兼容微信小程序和支付宝小程序遇到的坑,uniapp,小程序,uni-app,微信小程序

解决方案:使用相对路径即可

// 以下两种方式都可以
require('config/request.js')(app)
require('./config/request.js')(app)

9、页面跳转时,绝对路径和相对路径的区别

以`uni.navigateTo`举例:

uni.navigateTo({
	url: 'pagesB/pages/publishQues'
})
uni.navigateTo({
	url: '/pagesB/pages/publishQues'
})
`uni.navigateTo` 的 `url` 参数支持相对路径和绝对路径两种方式。

相对路径是相对于当前页面的位置进行计算,而绝对路径是从根目录开始计算

- `uni.navigateTo({ url: 'pagesB/pages/publishQues' })` 使用的是相对路径。
如果当前页面路径是 `pagesB/pages/index`,那么相对路径 `pagesB/pages/publishQues` 
会拼接在当前页面路径的基础上,
得到最终跳转路径为 `pagesB/pages/pagesB/pages/publishQues`。

- `uni.navigateTo({ url: '/pagesB/pages/publishQues' })` 使用的是绝对路径。
无论当前页面路径是什么,绝对路径 `/pagesB/pages/publishQues` 都是从根目录开始计算,
因此最终的跳转路径是 `pagesB/pages/publishQues`。

10、报错SyntaxError: Unexpected token } in JSON at position 264

报错:

Module build failed (from ./node_modules/@dcloudio/webpack-uni-pages-loader/lib/index.js):
08:58:30.510 SyntaxError: Unexpected token } in JSON at position 264
08:58:30.513     at JSON.parse (<anonymous>)

在小程序编译时,有些会报上述错误,有些不会,很难察觉这个错误,错误代码示例: 

{
	"path": "pages/index/index",
	"style": {
		"navigationBarTitleText": "标题",
		"enablePullDownRefresh": false,
		"navigationStyle": "custom",
		// #ifdef MP-TOUTIAO
		"navigationStyle": "default"
		// #endif
	}
},

原因:在JSON中,对象的最后一个元素后面不应该有逗号。

例如,{"key1": "value1", "key2": "value2",} 这样的写法是错误的。 假设在微信小程序中运行上述代码,就是多了一个逗号

uniapp兼容微信小程序和支付宝小程序遇到的坑,uniapp,小程序,uni-app,微信小程序

改正:文章来源地址https://www.toymoban.com/news/detail-617840.html

{
	"path": "pages/index/index",
	"style": {
		"navigationBarTitleText": "标题",
		"navigationStyle": "custom",
		// #ifdef MP-TOUTIAO
		"navigationStyle": "default",
		// #endif
        "enablePullDownRefresh": false
	}
},

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

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

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

相关文章

  • uniapp 之 微信小程序、支付宝小程序 对于自定义导航栏的不同

    目录 前言  微信小程序 代码  支付宝小程序 首页配置文件 二级菜单页面  配置 总结  不同 相同  小程序都是 uni-app 写的 不是原生 pages.json文件中配置 重点: \\\"navigationStyle\\\": \\\"custom\\\",  // 导航栏样式  首页 vue文件 template  script  备注:  height:是胶囊的高度 首页配置文件

    2024年02月15日
    浏览(44)
  • uniapp编译成微信小程序中遇到的兼容性问题

    模板里面如果存在这样的语法,则会报错Bad value with message;然而||\\\'\\\'和||[]则不会报错;如下所示; 解决方法:建议java后端加个拦截器统一处理下null 建议使用计算属性来访问全局变量; 原因: 排查循环依赖的问题 ,如下注释的代码即为循环依赖 uni.scss文件一定不能引用过多的样

    2024年02月07日
    浏览(66)
  • 跳转微信小程序和支付宝小程序

    参考链接 获取微信小程序 URL Scheme 1.1 获取小程序连接 这里需要获取长期有效的 Scheme,方式如下: 联系小程序开发者 其他渠道 示例 小程序 Scheme : 测试地址,可以打开小程序,只是打开后显示已注销 weixin://dl/business/?ticket=l92578fd8404e0d4e3e975f910fa43f3a 1.2 跳转使用 苹果手机中

    2024年02月06日
    浏览(84)
  • uniapp(微信小程序/支付宝小程序) - 最新解决canavs绘制海报、二维码图片等不显示问题,在uniapp小程序开发中使用canavs制作base64图片在真机运行时空白不显示(详细解决方法)

    在uniapp微信小程序 | uniapp支付宝小程序中,详解canavs技术绘制图像后在真实手机上运行不显示的问题,解决uniapp安卓苹果ios运行小程序后二维码/海报无法加载和展示,完美解决兼容问题、图片太大画不出来、加载失败等。支持保存到相册中或长按保存。 很多教程都无效,本

    2024年04月25日
    浏览(53)
  • uni app Signalr 支持 微信小程序和支付宝小程序

    使用方法

    2024年02月16日
    浏览(49)
  • 一码多端,一个二维码适用微信小程序,支付宝小程序,h5页面

    最近公司研发自己的一个小程序,因为是线下树牌,涉及到扫码这个问题,但是扫码又分三个端,浏览器扫码,微信扫一扫,支付宝扫码,做这个需求也是遇到了很多坑,在此记录一下 1.扫码进入微信小程序 首先登录微信公众平台,链接 https://mp.weixin.qq.com/  原本此处会有一

    2024年02月08日
    浏览(80)
  • 关于微信小程序 textarea 遇到的坑

    1、获取到焦点 键盘弹出时 页面上拉         解决方法         设置adjust-position为false         参考官网:textarea | uni-app官网 textarea的abjust-position属性                 例子: 注意加: 2、键盘弹出的时候去掉 键盘上方完成“按钮那一栏         解决方法    

    2024年02月15日
    浏览(35)
  • uniApp APP跳转支付宝小程序,uniapp唤起支付小程序

    ps:ios上支付宝的自定义协议是alipay   Android上支付宝的自定义协议是alipays         plus 不需要定义声明,为app端系统默认参数

    2024年02月12日
    浏览(61)
  • uniapp开发支付宝小程序

    1.运行支付宝小程序  这里运行后会打开你下载的支付宝开发者工具(中间有一步是配置你的支付宝开发者工具地址,这个就没有写了)    到此为止运行支付宝小程序就成功了 2.TypeError: Function(...) is not a function  出现该原因就是用了Function,当你的代码出现了该种情况就是看

    2024年02月11日
    浏览(56)
  • 微信小程序整合vantweapp van-field遇到的坑?

    最低基础库版本在 2.9.3 以上时,可以使用简易双向绑定。 但是在双向绑定的时候,发现有一个层级关系 在用户添加地址,和van-popup、van-area结合使用的时候,点击输入框,弹出选择地址的框,此时发现用户仍然可以输入,我就想到了禁用,但是发现禁用会置灰,给用户一种

    2024年02月11日
    浏览(85)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包