GVKun编程网logo

微信小程序适配 iPhone X 总结(小程序在苹果手机适配问题)

9

如果您对微信小程序适配iPhoneX总结感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于微信小程序适配iPhoneX总结的详细内容,我们还将为您解答小程序在苹果手机适配问题的

如果您对微信小程序适配 iPhone X 总结感兴趣,那么本文将是一篇不错的选择,我们将为您详在本文中,您将会了解到关于微信小程序适配 iPhone X 总结的详细内容,我们还将为您解答小程序在苹果手机适配问题的相关问题,并且为您提供关于1 - 微信小程序开发 (安装软件和运行第一个微信小程序)、iphone虚拟键小黑条布局处理_安全区域(Safe Area)在微信小程序和H5的屏幕适配、uni-app开发小程序适配苹果端采坑总结、仿QQ微信小程序!我趟过的微信小程序开发坑的有价值信息。

本文目录一览:

微信小程序适配 iPhone X 总结(小程序在苹果手机适配问题)

微信小程序适配 iPhone X 总结(小程序在苹果手机适配问题)

本文主要介绍我们的知识小集小程序在适配 iPhone X 屏幕时遇到的一些问题以及总结,希望对你的小程序开发能有所帮助。

iPhone X 屏幕数据

在去年 9 月份 iPhone X 正式发布后,引发了一波 iOS App 适配 iPhone X 的热潮和技术文章,详情可以参考掘金技术社区的这个专题: 《iPhone X 适配实践》

我们这里先简单总结一下 iPhone X 屏幕的基础数据,方便后续在小程序开发中进行适配。

  • 屏幕尺寸:5.8 英寸(对角线)

  • 屏幕物理分辨率:1125px × 2436px,458 ppi

  • 实际开发适配尺寸:375pt × 812pt,@3x

此外,由于在 iPhone X 屏幕顶部状态栏区域有“齐刘海”,以及在屏幕底部增加了“操作条”,如下图所示,因此,我们在开发中需要注意 安全区域 的问题。

根据苹果官方的文档,iPhone X 顶部状态栏的适配安全区域的高度为 44pt,底部操作条区域的高度为 34pt。另外,在 iPhone X 中,一些系统 Bar 的默认高度相比于之前的设备也发生了变化,如下表所示。

所以在 iOS App 开发中,如果我们使用系统默认的 UINavigationController 和 UITabBarController 时,则无需额外的适配工作,iOS 系统会自动适配好相关 Bar 的安全区域问题。如果我们使用了自定义的导航栏和标签栏,则需要注意根据设备类型区分设置这些 Bar 的不同高度。

小程序的尺寸单位

为了解决不同屏幕尺寸的适配问题,小程序自己定了一个尺寸单位:rpx(responsive pixel),它可以根据屏幕宽度进行自适应。小程序中规定, 所有设备的屏幕宽度都为 750rpx ,根据设备屏幕实际宽度的不同,1rpx 所代表的实际像素值也不一样。

根据 微信开发文档 ,在 4.7 英寸的 iPhone 设备上(iPhone 6/7/8),屏幕宽度为 375px(此处应该理解为 375 point),共有 750 个物理像素,则 750rpx = 375px = 750 物理像素,1rpx = 0.5px = 1物理像素。

小程序中如何判断设备为 iPhone X

上面我们简要介绍了 iPhone X 的屏幕数据和小程序中的尺寸单位作为铺垫,现在终于要切入正题了,要在小程序中适配 iPhone X 屏幕,首先我们需要知道如何判断设备类型。

微信的小程序 API 中提供了一个 wx.getSystemInfo(OBJECT) 方法用于获取用户手机的系统信息和设备信息,包含如下数据:

上述每个字段的含义详见 文档 ,我们不再一一赘述。

因此,我们可以根据该方法返回的手机型号字段 model 是否包含 iPhone X 字符串来判断设备是否为 iPhone X,也可以根据 screenHeight 的高度是否等于 812 来判断。

NOTE:这里有一个小坑需要注意,在微信开发者工具中的模拟器,如果选择为 iPhone X,此时获取到的 model 值为 iPhone X ,导致我以为真机也是这个值,于是直接用 if (model == 'iPhone X') 来判断,但其实真机下 model 的值为这种格式: iPhone X (GSM+CDMA)<iPhone10,3> ,因此我们需要用字符串检索匹配进行判断。

综上,我们可以在 app.js 的 globalData 中添加一个字段 isIPX 用于标识当前设备是否为 iPhone X,然后在小程序启动时 onLaunch 中调用 wx.getSystemInfo(OBJECT) 方法并在其 success回调中读取 model 字段进行分析,代码大致如下:

App({
  // 全局数据
  globalData: {
    // 其他数据定义 ...
    
    isIPX: false,// 当前设备是否为 iPhone X
  },136);">// 小程序启动入口
  onLaunch: function (options) {
    // 其他启动代码...
    
    // 判断设备是否为 iPhone X
    this.checkIsIPhoneX()
  },checkIsIPhoneX: function() {
    const self = this
    wx.getSystemInfo({
      success: function (res) {
        // 根据 model 进行判断
        if (res.model.search('iPhone X') != -1) {
          self.globalData.isIPX = true
        }
        // 或者根据 screenHeight 进行判断
        // if (res.screenHeight == 812) {
        //   self.globalData.isIPX = true
        // }
      }
    })
  },}

如果需要小程序启动时立即获取设备相关信息,也可以调 wx.getSystemInfoSync() 方法,它会同步获取数据并立即返回。

页面适配实战

在小程序页面开发中,涉及到需要适配 iPhone X 的地方主要有:导航栏(NavigationBar),标签栏(TabBar)以及页面底部的吸底按钮。

  • 导航栏和标签栏适配

如果我们使用微信小程序官方组件进行开发,没有进行自定义,在 app.json 文件中设置 tabBar 页面,且 window 的 navigationStyle 值为 default ,那么我们无需在 iPhone X 中对导航栏和标签栏进行适配,微信会自动帮我们适配好,如下图为知识小集小程序的首页:

但是我们如果是自定义导航栏(在 navigationStyle 为 custom ,此时只保留右上角胶囊状的按钮,需要开发者自己画导航栏样式)和标签栏,则我们需要在每个页面中判断设备类型,并针对 iPhone X 屏幕在安全区域内进行布局,并修改相关 Bar 的高度值(见上述表格)。

以自定义导航栏适配为例,步骤如下:

(1)在每个页面的 page.js 中先读取 app.js 中的 isIPX 值,如下:

const app = getApp()

Page({
  data: {
    // 页面其他数据...
    
    isIPX: app.globalData.isIPX,},136);">// 其他代码
}

(2)然后在 page.wxss 样式文件中对某一个视图 View 分别为普通屏幕和 iPhone X 屏幕写两种样式,如下:

.navi-bar-view {
  height: 64px;
  /* 其他样式值 */
}
.navi-bar-view-IPX {
  88px;
  /* 其他样式值 */
}

(3)最后在 page.wxml 页面结构布局中根据 isIPX 的值给 View 设置不同的 class 样式,如下:

<view class="{{isIPX ? 'navi-bar-view-IPX' : 'navi-bar-view'}}">
@H_301_264@</view>

此外,对于自定义导航栏和标签栏,我建议还是要遵循 iPhone UI 的设计规范,样式可以参考苹果官方的渲染图:

  • 吸底按钮适配

在小程序页面中,吸底按钮是很常见的一种设计,我们一般会把一些重要的按钮放在页面底部悬浮不动,例如我们知识小集小程序的“小集详情页”底部的“收藏”和“转发”按钮:

在 iPhone X 中我们需要把吸底按钮往上偏移 34 像素,可通过在 CSS 样式中设置 padding-bottom 为 34px 实现,参考代码如下:

"{{isIPX ? 'Feed-bottom-view Feed-bottom-view-IPX' : 'Feed-bottom-view'}}"> @H_301_264@<!-- 底部吸底按区域 --> </view>

1 - 微信小程序开发 (安装软件和运行第一个微信小程序)

1 - 微信小程序开发 (安装软件和运行第一个微信小程序)

https://developers.weixin.qq.com/miniprogram/dev/

 

 

 

 

 

 

 

 

 

 

我的

 

 

 

 

 

 

 

 

 打开

 

 

 

 

 

 

 

 

 

 上传成功后

 

 

 

 

 

 

 

 

 

 

iphone虚拟键小黑条布局处理_安全区域(Safe Area)在微信小程序和H5的屏幕适配

iphone虚拟键小黑条布局处理_安全区域(Safe Area)在微信小程序和H5的屏幕适配

一、iphone虚拟键小黑条布局处理_安全区域(Safe Area)在微信小程序和H5的屏幕适配

使用苹果官方推出适配方案css函数env()、constant()来适配 (推荐)

苹果官方推荐使用env()constant()来适配,建议使用该方案,不需要管数值具体是多少。这2个方法是什么呢?

  • env()和constant(),是IOS11新增特性,Webkit的css函数,用于设定安全区域与边界的距离,有4个预定义变量:
    • safe-area-inset-left:安全区域距离左边边界的距离
    • safe-area-inset-right:安全区域距离右边边界的距离
    • safe-area-inset-top:安全区域距离顶部边界的距离
    • safe-area-inset-bottom :安全距离底部边界的距离

因为目标是需要对底部小黑条做适配,所以只需要关注safe-area-inset-bottom这个值。

而env()和constant()函数有个必要的使用前提,当网页设置viewport-fit=cover的时候才生效,根据微信小程序的表现和我在实际真机测试时这两个函数生效,推测小程序里的viewport-fit默认是cover

有一点要注意,在IOS11.2系统以前,可以使用constant()函数,但是在IOS11.2系统以后,这个函数就被废弃了,被env()函数替代了。官方原话如下:

The env() function shipped in iOS 11 with the name constant(). Beginning with Safari Technology Preview 41 and the iOS 11.2 beta, constant() has been removed and replaced with env(). You can use the CSS fallback mechanism to support both versions, if necessary, but should prefer env() going forward.

所以我们在做屏幕适配时,需要这样写:

padding-bottom: constant(safe-area-inset-bottom); /*兼容 IOS<11.2*/
padding-bottom: env(safe-area-inset-bottom); /*兼容 IOS>11.2*/

**注意:**env()和constant()需要同时存在,而且顺序不能换。

3. 在H5上适配安全区域

在H5上适配安全区域就方便多了,采用viewport+env+constant方案。

viewport-fit 默认有3个值:

  • contain:可视窗口完全包含网页内容(左图)
  • cover:网页内容完全覆盖可视窗口(右图)
  • auto:默认值,此值不影响初始布局视图端口,并且整个web页面都是可查看的。

contain和cover具体区别如下图:

viewport属性.png

 

 

而我们需要将viewport设置为cover,env和constant才能生效。设置代码如下:

meta name="viewport" content="width=device-width,initial-scale=1.0,viewport-fit=cover">

同时设置env和constant代码,同样env()和constant()需要同时存在,而且顺序不能换。

/* 可以通过增加padding-bottom来适配 */

padding-bottom: constant(safe-area-inset-bottom); /*兼容 IOS<11.2*/

padding-bottom: env(safe-area-inset-bottom); /*兼容 IOS>11.2*/
 
  1.  
/* 可以通过margin-bottom来适配 */

margin-bottom: constant(safe-area-inset-bottom);

margin-bottom: env(safe-area-inset-bottom);
 
  1. /* 或者改变高度*/
    height: calc(55px + constant(safe-area-inset-bottom));
    
    height: calc(55px + env(safe-area-inset-bottom));

     

也可以在底部添加一个空白的div颜色块来做适配。

还有一种是使用 @supports 隔离兼容样式

可以使用 @supports 来隔离兼容样式,当浏览器支持bottom: constant(safe-area-inset-bottom)或者bottom: env(safe-area-inset-bottom)的时候,bottom-button类就会新增margin-bottom的样式

@supports (bottom: constant(safe-area-inset-bottom)) or (bottom: env(safe-area-inset-bottom)) {

.bottom-button {

margin-bottom: constant(safe-area-inset-bottom);

margin-bottom: env(safe-area-inset-bottom);

 

更多:

微信小程序中实现多级联动方法、联动选择

微信小程序客服会话卡片、自定义客服消息卡片

 

uni-app开发小程序适配苹果端采坑总结

uni-app开发小程序适配苹果端采坑总结

不得不说,任何一个开发者遇到苹果手机都会或多或少需要做适配,在使用uni-app开发小程序时,我就发现不少需要兼容的地方,今天做个小结

1.由于页面大多数内容都是动态获取,当页面高度不给固定值时,让其随内容的填充自适应的时候,iPhoneXS Max手机在页面底部会出现白版,安卓手机不会有此现象. 解决办法:

    //通过获取系统信息拿到屏幕宽高比,
    const SCREEN_WIDTH = 750
    const RATE = wx.getSystemInfoSync().screenHeight / wx.getSystemInfoSync().screenWidth
    data(){
        ScreenTotalH: SCREEN_WIDTH * RATE, //拿到真实手机高度
    }
    //展示内容高度
    <view:>
    //这样后苹果大屏手机内容底部不会白板

2.获取到时间字符串"2020-07-12 09:00:30" ,当我截取后取时和分为单位,如果时为"00"时,页面<text>{{dian}}点</text>,显示为''0''而不是我要的''00'',这个问题十分奇葩,虽然不是大的影响,加个三目判断:<text>{{dian==''00''?''00'':dian}}点</text>,就ok.
3.有时候小程序需要显示APP分享过来的H5页面,或者小程序本身需要显示H5页面时,需要配置https的域名,不然会无法正常显示。补充:(H5页面一般通过<web-view :src="src"></web-view>来展示,SRC里面的页面都是后台配置好的)
目前这是我遇到的苹果端适配问题以及解决办法,还有其他关于小程序苹果端的适配问题,大家网上去搜索一大把,解决办法大佬们都写了,我再此就不重复别人的成果了.

仿QQ微信小程序!我趟过的微信小程序开发坑

仿QQ微信小程序!我趟过的微信小程序开发坑

我们都知道微信小程序第一天发布内测版,并没有公开官方开发文档和开发工具,但是这阻止不了技术人的好奇心,通过破解以及先安装旧版本再用新版本覆盖安装一系列流程,即可体验微信小程序的魅力,当时为了使更少的人少走弯路,于是自己就写了微信小程序开发环境搭建一文。不过在文章发布第二天微信官方正式发布了官方文档,并且更新了开发工具,无·appid也可以体验小程序的开发。
因为自己对小程序也是很有兴趣的,感觉是很有意思的一个东西,所以以QQ练手,做一个,由于本人是Android开发者,平时很少接触前端的一些东西,水平有限,所以代码很多地方是不规范的,做的过程也就是一个学习的过程,一个提高的过程。

这篇文章主要写我在SmallAppForQQ这个项目进展的过程中遇到的一些问题。如果阅读此文的你有一定帮助,很是欣慰,欢迎star项目。



项目结构

文章开头,先简单介绍下项目结构,若没有安装开发工具,可去GitHub:

WXML(WeiXin Markup Language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出页面的结构。内部主要是微信自己定义的一套组件。

  • WXSS(WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式,

  • js 逻辑处理,网络请求

  • json  小程序设置,如页面注册,页面标题及tabBar。

  • 注意:为了方便开发者减少配置项,规定描述页面的这四个文件必须具有相同的路径与文件名。

    在根目录下用app来命名的这四中类型的文件,就是程序入口文件。

    app.json
    必须要有这个文件,如果没有这个文件,项目无法运行,因为微信框架把这个作为配置文件入口,整个小程序的全局配置。包括页面注册,网络设置,以及小程序的window背景色,配置导航条样式,配置默认标题。

  • app.js
    必须要有这个文件,没有也是会报错!但是这个文件创建一下就行 什么都不需要写
    以后我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。

  • app.wxss
    全局配置的样式文件,项目非必须。

  • 知道小程序基本文件结构,就可以开始研究官方demo了,研究过程中如果有不明白的地方可以去官方文档寻求答案,如果找不到答案或者有疑问,可再此博客留言,相互交流。下面介绍下出现概率较高的几个问题。

    常见问题

    rpx(responsive pixel)

    微信小程序新定义了一个尺寸单位,可以适配不同分辨率的屏幕,它规定屏幕宽为750rpx,如在 iPhone6 上,屏幕宽度为375px,共有750个物理像素,则750rpx = 375px = 750物理像素,1rpx = 0.5px = 1物理像素。

    image.png

    这个项目我用的都是rpx尺寸单位,期间遇到一个很奇葩的问题。在相邻的两条信息直接都会有一个分割线,我将线的高度都设置成1rpx,但是不有个别分割线是不显示的,如下图

    image.png

    看到没在第一条和第二条直接并没有现实这条线,但是其他的都展示了,分割线的属性是一样的,而且在不同的手机上(分辨率不同)不显示的分割线也是不同的,有的分辨率好几条分割线都不显示,不知道这是模拟器的bug还是rpx的bug。最后分割线的高度尺寸单位使用了px,解决了这个问题。

    40013错误

    image.png

    在微信小程序刚出来的时候如果输入AppID提示这个信息就表示没有破解,但是现在官方软件更新可以选择无AppID开发,如下图,我们之间选择无AppID,即可解决此错误。建议安装官方开发工具。可去。

    image.png

    -4058错误

    微信小程序创建项目时选择无AppID,创建项目时会生成app.json,app.josn是程序启动最重要的文件,程序的页面注册,窗口设置,tab设置及网络请求时间设置都是在此文件下的。如果你创建的项目目录下没有app.json文件就会报下面的错误。

    image.png

    我们看到上面的错误信息中有个数字-4058,这应该是初入微信小程序遇到最多的错误了,这种一般都是文件缺失,后面有个path,可以对着该路径看看是否存在这个文件。造成这种错误的原因一般都是创建项目选择的目录不正确,或者在app.json注册了一个不存在的页面。
    当然还有一种情况就是在app.json文件的pages注册的页面是没有创建的,或者你删除了某个页面,但是没有取消注册也会是-4058错误。

    Page注册错误

    image.png

    这个错误可能很容易理解,页面注册错误。页面是通过Page对象来渲染的,每个页面对应的js文件必须要创建page,最简单的方式就是在js文件下写入Page({}),在page中有管理页面渲染的生命周期,以及数据处理,事件都在这完成。这个错误引起的原因一般都是刚创建页面,js文件还有有处理或者忘了处理。所以要养成创建页面的同时在js文件先创建Page的习惯.

    Page route错误

    image.png

    字面意思就是页面路由错误,在微信中有两种路由方式一种是在wxml文件使用组件,一种是调用wx.navigateto。
    如下代码:

    wxml文件:

    
     搜索
    

    js文件事件处理函数:

    bindtap:function(event){
    wx.navigateto({
    url: "search/search"
    })
    }

    如果你这样写的话,恭喜你,你就会看到上面提示的错误,这是因为重复调用路由引起的,处理方法就是删除一个路由,删除组件或者删除wx.navigateto。除了上面说的可能导致路由错误外,还有一种情况,类似于下面的代码

    
    
     搜索
    
    

    这种也是不允许的,也就是说组件内部不能再嵌套组件。它只能是单层存在的。

    Do not have * handler in current page.

    image.png

    错误出现的可能位置pages/message/message,其实这种问题出现一般就是我们在wxml定义了一些处理事件,但是在js文件中没有实现这个时事件的处理方法,就会出现这个错误。那么我们按提示在js文件加上事件处理,如下代码,加上后就不会再有此错误提示。

    bindtap:function(event){
    wx.navigateto({
    url: "search/search"
    })
    },

    tabBar设置不显示

    对于tabBar不显示,原因有很多,查找这个错误直接去app.json这个文件,最常见的也是刚学习微信小程序最容易犯的错误无外乎下面几种

    注册页面即将页面写到app.json的pages字段中,如

     "pages":[
    
    "pages/message/message",
    "pages/contact/contact",
    "pages/dynamic/dynamic",
     "pages/dynamic/music/music",
    "pages/index/index",
    "pages/logs/logs"
    ]

    tabBar写法错误导致的不显示,将其中的大写字母B写成小写,导致tabBar不显示。

  • tabBar的list中没有写pagePath字段,或者pagePath中的页面没有注册

  • tabBar的list的pagePath指定的页面没有写在注册页面第一个。微信小程序的逻辑是"pages"中的第一个页面是首页,也就是程序启动后第一个显示的页面,如果tabBar的list的pagePath指定的页面都不是pages的第一个,当然也就不会电视tabBar了。

  • tabBar的数量低于两项或者高于五项,微信官方中明确规定tabBar的至少两项最多五项。超过或者少于都不会显示tabBar。

  • navigationBarTitle显示问题

    通过这个动态图你应该发现问题了,当点击音乐进入音乐界面时,title先显示了WeChatForQQ然后显示的音乐,这个体验肯定是难以接受的,原因是音乐界面的title是在js文件中page的生命周期方法中设置的。

    Page({
    data:{
    // text:"这是一个页面"
    },
    onLoad:function(options){
    // 页面初始化 options为页面跳转所带来的参数
    
    },
    onReady:function(){
    // 页面渲染完成
    //NavigationBarTitle如果此处和json文件都设置,最后展示此处的标题栏
    wx.setNavigationBarTitle({
    title: '音乐'
    })
    },
    onShow:function(){
    // 页面显示
    },
    onHide:function(){
    // 页面隐藏
    },
    onUnload:function(){
    // 页面关闭
    }
    })

    通过注释你应该明白了,设置标题写在了onReady方法中,也就是页面已经渲染完成了,在onReady之前显示的title就是json文件(覆盖关系,如果在子页面json文件设置title会覆盖app.json全局设置)中的title。可能你会说将wx.setNavigationBarTitle写在onLoad函数中,不过如果这样设置是不对的,因为onLoad执行过后才渲染页面,在渲染页面时title会从json文件中读取,导致onLoad设置的title会只在页面渲染之前展示,之后就显示json文件的tile,所以现在你应该明白ttle设置最优的地方就是给子文件写一个json文件,在文件中写入,如果想改变颜色直接在文件中添加就可以,该文件所写的属性值会覆盖app.json中设置的值。

    {
    "navigationBarTitleText": "音乐"
    }

    wx.navigateto无法打开页面

    一个应用同时只能打开5个页面,当已经打开了5个页面之后,wx.navigateto不能正常打开新页面。请避免多层级的交互方式,或者使用wx.redirectTo

    本地资源无法通过 css 获取

    background-image:可以使用网络图片,或者 base64,或者使用标签

    页面间数据传递

    微信小程序路由(页面跳转)是通过API wx.navigateto或者wxml中组件实现的,不管哪种实现都会有一个重要的参数就是url,它指定了要跳转的页面,并且页面之间数据传递也是通过url来实现的,这个数据传递有点类似于我们使用的get网络请求,把参数都拼接在要跳转界面地址的后面并以“?”连接。然后将要传入的数据以键和值的形式追加在"?"后面,多个参数直接用"&"符合。如我们点击消息聊天记录,将列表上的数据传到下一个页面,可以这样写。

     
    
     
    
     
     
    
     {{item.title}}
    
    
    {{item.message}}
    
    
    
    {{item.time}}
    0}}">{{item.count}}
    
     
     
     

    而数据接收是在js文件的page里接收的,page生命周期有一个onLoad函数,它就是做一些初始化数据的工作,onLoad函数有一个参数options,我们就可以通过key将数据获取,如下

    /**作者:Code4Android
     * 项目地址:https://github.com/xiehui999/SmallAppForQQ
     * 新浪微博:http://weibo.com/745687294
     * CSDN:http://blog.csdn.net/xiehuimx?viewmode=contents
     * 简书 : http://www.jianshu.com/users/d5b531888b2b/latest_articles
     * */
    Page({
    data:{
    // text:"这是一个页面"
    isHiddenToast:true
    }
    onLoad:function(options){
    // 页面初始化 options为页面跳转所带来的参数
    console.log(options.title)
     console.log(options.message)
    
    },
    onReady:function(){
    // 页面渲染完成
    },
    onShow:function(){
    // 页面显示
    },
    onHide:function(){
    // 页面隐藏
    },
    onUnload:function(){
    // 页面关闭
    },
    bindtap:function(event){
    wx.navigateto({
    url: "/pages/message/search/search"
    })
    },
    })

    这样就实现了页面间数据传递功能。

    好了,今天就写到这了后期若遇到微信小程序其它一些问题.

    作者:Code4Android
    链接:http://www.jianshu.com/p/99071193bfe8

    我们今天的关于微信小程序适配 iPhone X 总结小程序在苹果手机适配问题的分享已经告一段落,感谢您的关注,如果您想了解更多关于1 - 微信小程序开发 (安装软件和运行第一个微信小程序)、iphone虚拟键小黑条布局处理_安全区域(Safe Area)在微信小程序和H5的屏幕适配、uni-app开发小程序适配苹果端采坑总结、仿QQ微信小程序!我趟过的微信小程序开发坑的相关信息,请在本站查询。

    本文标签:

    上一篇兼容小程序的canvas画图组件jmGraph(小程序canvas绘制图片)

    下一篇网易云IM小程序聊天室集成PHP版SDK API使用示例(网易云小程序开发)