微信小程序和公众号开发踩坑经验分享

本文主要是记录在微信小程序和公众号开发过程中,遇到的坑点,以及自己的一些实用经验,借以此文分享出来。

微信小程序

样式相关

关于text标签换行显示问题

arduino 复制代码
<text>****</text>
arduino 复制代码
<text>
  ****
</text>

代码格式化text换行之后,会被解析成/n换行符,导致页面样式出错,在使用text标签时需要注意这个换行问题,避免格式化换行之后整体样式出错。

去除button原有样式

css 复制代码
button {
  margin: 0 !important;
  padding: 0 !important;
  background-color: inherit;
  position: static;
  &::after {
    content: none;
    border: none;
  }
}

小程序内嵌H5软键盘遮挡问题

软键盘遮挡问题比较常见,当点击输入的时候,经常会有键盘挡住输入框的情况,以下介绍一种亲测有效的方法:

  1. input绑定监听聚焦事件@focus="focus"
  2. 滚动到input在页面上面的所在位置
js 复制代码
const focus = (e) => {
    // IOS低版本不兼容--过滤
    if (/OS 11_[0-3]\D/.test(navigator.userAgent)) return
    // 输入框软键盘遮挡问题
    setTimeout(() => {
        e.target.scrollIntoView && e.target.scrollIntoView({ behavior: 'smooth', block: 'center' })
    }, 300)
}

API

动态设置share信息

当你需要在同一个页面分享不同的分享信息时,你可以通过onShareAppMessage钩子暴露出来的from参数以及在分享按钮绑定的信息来区分,来设置不同的分享信息。

js 复制代码
onShareAppMessage (e) {
  const { from, target: { dataset: info } } = e;
  // 分享来源为按钮
  if(from === 'button') {
    // 分享来源为按钮
    console.log(info) // 按钮上绑定的值
    return {title:...}
  }
  // 分享来源是页面级别的
  return {title:...}
}

混入share

如果你有很多页面都需要使用类似的分享信息,你可以使用混入方法,混入 onShareAppMessage 时,需要将其放入 Behavior 的 methods 中, 否则无效。

javascript 复制代码
let title = '你的默认分享主题'
let imageUrl= '你的默认分享图片地址'
let path = 'pages/index/index'  // 默认放了个首页

module.exports = Behavior({
  // 混入 onShareAppMessage 时,需要将其放入 methods 中, 否则无效
  methods: {
    onShareAppMessage() {
      return {
        title,
        path,
        imageUrl
      }
    }
  }
})

业务流程

微信小程序内嵌H5支付

微信小程序内嵌H5进行微信支付-无法走微信公众号购买的这套逻辑

坑点:开了调试之后可以正常购买

解决方法:内嵌的H5跳小程序的原生页面-支付完成后跳回

支付

支付宝内嵌H5中可以直接调用支付宝API的支付

微信内嵌H5中进行支付需要跳到微信小程序的页面进行支付

ps:微信小程序webview中通信,只会在页面跳转或初始化的时候触发

支付宝小程序中的webview可以实时通讯

微信公众号

链接点击进入后分享,只能分享纯链接

按理来说,我们都期望分享出来的是类似图中下面这种卡片的形式,但是实际上有些场景分享出来的是纯链接的形式。 如果我们希望分享出来的永远是卡片的形式,需要我们通过以下的解决方案去限制。

解决方案:

1.将链接添加至公众号的自定义菜单中,从公众号菜单进入分享

2.扫描二维码分享

3.将链接保存至微信收藏中,从我的收藏进入分享

其余其他地方进入分享都是链接形式

问题产生原因:微信开放全域名访问后的官方调整

开发者社区参考: developers.weixin.qq.com/community/d...
developers.weixin.qq.com/community/d...

微信官方开放全域名访问说明 :mp.weixin.qq.com/s/7zxqex8Du...

后记

以上就是我在微信开发过程中遇到的一些问题以及一些解决方案,有的只是简单记录,没有详细的说明,如果有细节想要讨论的欢迎留言讨论。

相关推荐
Sand(ContextGate)22 分钟前
Python Agent 测试实战:测试与评估,让 Agent 像传统软件一样可交付
前端·javascript·python·microsoft·ai
广州华水科技32 分钟前
单北斗GNSS变形监测系统在城市安全与地质灾害中的应用前景
前端
颜进强35 分钟前
20 · NestJs循环依赖与 forwardRef:容器为什么在环面前会死,"占位再补齐"怎么救
前端·后端·ai编程
颜进强41 分钟前
19 · NestJs @Global 落地账:装饰器与 `isGlobal` 参数,各在什么场景上岗
前端·后端·ai编程
码艺-Alimjan1 小时前
Tauri 网站To桌面应用实战总结
前端·javascript·vue
颜进强1 小时前
18 · NestJS动态模块与 forRoot:`imports: [ConfigModule.forRoot({...})]` 到底在 import 什么
前端·后端·ai编程
YZ1225521 小时前
【Docker专题】使用Docker部署Vue-Flask项目前后端分离版【前端Docker部署】
前端·vue.js·docker
liangshanbo12151 小时前
浏览器渲染过程:高级前端面试题
前端
太子釢1 小时前
React 函数组件与 Hook 实践指南
前端·react.js
颜进强2 小时前
17 · 自定义 Provider 四形态:useValue / useClass / useFactory / useExisting 到底在选什么
前端·后端·ai编程