小程序能调用哪些API

小程序能调用哪些API,第1张

从下图API的目录我们能看到,小程序的技术支持分为了网络、媒体、文件、数据缓存、位置、设备、界面、开放接口8个部分。下面,我们就来一个部分一个部分的看看。

1.网络功能

网络这一部分支持手机文件的上传下载,除此之外,值得注意的是支持WebSocket,这意味着可以通过小程序实现手机和服务器双向的通信, 这样小程序内容的变化就可以主动的推送给用户。例如用户的文章得到了评论,用户不用刷新页面,评论就会自动出现在页面上。另外,还可以利用这个技术做一个聊天室,可以是一对一的,就好像qq,或者多对多的,就好像qq群。

2.媒体

通过媒体的支持,我们可以实现3部分功能:1. 手机从本地相册上传图片,预览图片和处理相关图片信息;2. 实现录音的录制、上传、播放;3. 实现播放背景音乐、控制背景音乐。需要特别说明的是音频录制跟微信公众号一样,只能录制60秒,超过60秒会自动停止。不过微信公众号的录音api应该有bug,在苹果系统下,微信录音达到45秒会出现错误,音频播放乱音。不知道小程序是否有这个问题。不过,为了避免掉到坑里,还是考虑使用七牛。

3.文件

这个我就不截屏了,比较简单,支持手机存储内的文件上传下载用的,可以浏览手机存储目录,文件信息。

4.数据缓存

数据缓存很好的实现了浏览器本地迅闭缓存的功能,这意味了开发者们可以自己管理客户端的缓存了,这帮助为我们的终端用户节省流量。

5.位置

位置功能可以帮助小程序实现获取用户位置、地图定位的功能。导航?那应该是地图app的事情了。

6.设备

设备这个有点说头了。总共分为6个部分。首先可以获取手机的系统信磨早息,可包括了手机的型号,像素密度,屏幕大小,以及 *** 作系统、客户端信息,这帮助小程序页面布局、功能细节更好的适配种类繁多的手机。第二个是获取用户手机网络状态:2g、3g、4g、wifi,你可以提醒用户wifi下再观看节省流量哦~ 重力感应和罗盘可以实现涉及运动类和互动游戏类功能,比如微信运动、摇一摇。拨打电话可以嵌入到客服电话或者类似滴滴联系司机的场景里面。最后还有微信扫码接口调用相机实现线下二维码的扫描。

7.界面

这一部分,实现了基本的d出框效果、导航效果,除此之外,亩游裂特别要说明的,是微信实现了html5画布的功能,这意味着可以在小程序中实现一些简单的小游戏和卡通场景绘制。不过目前来看只支持2D界面的绘制,暂时还不支持3D。

8.开放接口

开放接口功能分类也比较多。首先为小程序提供了登录和会话管理的功能,这样登录功能的开发就可以事半功倍了。第二,获取用户的微信账户信息,当然能获得哪些信息,都是在微信允许的范围内,例如openid,昵称、头像。好多朋友都问:能不能获取到用户电话和微信号?怎么可能?!想都不要想。第三是支持微信支付。第四,模板消息。这类消息其实早在微信认证服务号里面就有,请注意是认证过的,服务号(不是订阅号)。有好多朋友不明白这种消息是干嘛的。可以主动发送给用户,没有频次限制,厉害吧?!但是内容由模板格式限制,不能发送营销内容,是不是失望了,哈哈。干什么用的呢?想象你的银行微信公众号给你发的消费通知。对,就是模板消息。第五,客服消息,支持微信客户接口,很强大。最后支持分享到微信好友和朋友圈功能,支持获取微信小程序的二维码。

当然,如果看了这些你还是不太懂,可以参考 云竹小程序,相信能够解决你的问题。

我们发现,小程序里面大部分API都是异步接口,这根它的双线程模型有很大关系。

以下举一个标准的异步接口 showToast 。

在logic层,我们调用了 showToast 方法:

实际上此春陵这接口发到 master 层森渗去处理的:

考虑到我们的接口都是异步回调,在 master 层处理完毕后需要通知回 logic 层:

上面我们看到了一个 msgId,这是各层间传递信息标识的唯一id,而 logic 层还需要处理回调结果森戚,我们完善一下:

在API调用的时候,把自身的回调函数缓存起来,等收到回调的信息时,执行相应的回调,再把缓存删掉。

在一些接口上,也能提供同步的接口,比如: getStorageSync 。

这个比较好理解,因为 localStorage 无论在父级页面或者iframe中都能取到,而且本身也是一个同步方法,所以可以在 master 层和 logic 层都实现一遍。

我们还发现,小程序的 setStorage 比 web 上的 localStorage 似乎可以写入的格式多一些,还支持Date格式类型,方法是通过写入JSON来实现,参照 LocalStorage

上一篇

1.用到的知识点wx.request请求接口资源( 小程序api中的发起请求部分)swiper实现轮播图的组件wx:for循环语句 小程序的基础知识2.实现原理首先,先看一下这个请求函数varwx.request({url:'******',//这里填写你的接口路径header:{//这里写你借口返回的数据是什么类型,这里就体现了 小程序的强大,直接给你解析数据,早漏枝再也不用去寻找各种方法去解析json,陆敏xml等数据了'Content-Type':'application/json'},data:{//这里写你要请求的参数x:'',y:''},success:function(res){//这里就是请求成功后,进行一些函数 *** 作console.log(res.data)}})12345678910111213141516123456789101112131415163.代码分解图首先上一段知乎接口数据的json格式中的开头"date":"20161114","stories":[{"images":["/76125c357aa7b0ca6c9cbc41b4a5326d.jpg"],"type":0,"id":8975316,"ga_prefix":"111422","title":"小事·我和你们一样"搜春},{"images":["/7c908a5940384123fd88287dbc6a2c98.jpg"],"type":0,"id":8977438,"ga_prefix":"111421","title":"成长嘛,谁说就意味着一定要长大了?"},12345678910111213141516171819201234567891011121314151617181920index.js中Page({data:{duration:2000,indicatorDots:true,autoplay:true,interval:3000,loading:false,plain:false},onLoad:function(){varthat=this//不要漏了这句,很重要wx.request({url:'/api/4/news/latest',headers:{'Content-Type':'application/json'},success:function(res){//将获取到的json数据,存在名字叫zhihu的这个数组中that.setData({zhihu:res.data.stories,//res代表success函数的事件对,data是固定的,stories是是上面json数据中stories})}})}})12345678910111213141516171819202122232425262728291234567891011121314151617181920212223242526272829index.wxml中//这里边的属性不重要,看下边{{item.title}}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12342901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存