微信小程序学习 (6)

通过 canIUse 可以判断小程序的API,回调,参数,组件等是否在当前版本可用。
返回值一般而言都是布尔值。

wx.canIUse('openBluetoothAdapter') wx.canIUse('getSystemInfoSync.return.screenWidth') wx.canIUse('getSystemInfo.success.screenWidth') wx.canIUse('showToast.object.image') wx.canIUse('onCompassChange.callback.direction') wx.canIUse('request.object.method.GET')

或者你也可以基于能力去判断:

if(this.setData) //.... 用户权限

开发者通常向用户发起权限授权主要是通过 wx.authorize这个接口实现,但需要注意的是如果调用的是“用户信息”,则需要使用特定的按钮组件来引导用户操作,单纯的使用 scope:scope.userinfo 是无法弹出授权弹窗。

<button open-type="getUserInfo">允许获取个人信息</button>

另外,每个权限都有对应的 API接口可以获取该权限的的状态以及详情,例如:wx.getUserInfo、wx.getLocation等..
如果想查看全部权限的状态,可以通过另一个 API接口获取当前的权限列表:wx.getSetting。
对于用户拒绝授权的接口并且短时间无法再次打开,我们可以调用 wx.openSetting 来让用户自己手动操作。

WXS

WXS 代码可以编写在 WXML 文件中的 标签内,或者保存在以 .wxs 为后缀的文件里。
WXS 可以看作成小程序自己定义的一套脚本,它的语法非常类似于原生 JS,但是运行环境并不相同,所以 有些 JS的对象或方法无法使用,也不能调用小程序的 API,其主要目的还是为增强 WXML的模版处理能力。
不论是 WXML中的 wxs内的代码,还是独立的 *.wxs文件中的代码,它们都有独立的作用域。
实例:

<wxs module="mthodName"> function methodName(value){ return value.split(','); } module.exports = methodName; //需要导出 </wxs>

调用模块中的方法

<view wx:for="{{methodName(names)}}"> //names是页面JS中的data配置的。 <text>{{item}}</text> </view>

或者你可以单独将wxs中的脚本单独的保存在一个文件中,然后使用wxs引入。

<wxs src="http://www.likecs.com/methodName.wxs" module="methodName"></wxs> <view wx:for="{{methodName(names)}}"> </view>

https://developers.weixin.qq.com/miniprogram/dev/framework/view/wxs/ (更多关于WXS)

开源项目参考

https://github.com/tumobi/nideshop-mini-program (NideShop:基于Node.js+MySQL开发的开源微信小程序商城(微信小程序)
https://github.com/EastWorld/wechat-app-mall (微信小程序商城,微信小程序微店)
https://github.com/ecomfe/echarts-for-weixin (ECharts 的微信小程序版本)
https://github.com/sqaiyan/NeteaseMusicWxMiniApp (仿网易云音乐APP的微信小程序)
https://github.com/zce/weapp-demo (仿豆瓣电影微信小程序)
https://github.com/myvin/juejin (掘金小程序)
https://github.com/xiehui999/SmallAppForQQ (高仿手机QQ应用程序
https://github.com/liuxuanqiang/wechat-weapp-mall (微信小程序-移动端商城)
https://github.com/web-Marker/wechat-Development (微信小应用-小程序-demo-仿芒果TV)
https://github.com/lanshan-studio/wecqupt (We重邮 - 微信小程序 )
https://github.com/RebeccaHanjw/weapp-wechat-zhihu (微信中的知乎--微信小程序 demo)
https://github.com/eyasliu/wechat-app-music (微信小程序:音乐播放器 )
https://github.com/skyvow/m-mall (微信小程序-小商城前台(基于 WeUI.wxss、ES6 前端技术开发...)
https://github.com/sesine/wechat-weapp-movie (电影推荐 - 微信小程序)
https://github.com/ahonn/weapp-one (仿 「ONE · 一个」 的微信小程序)
https://github.com/kraaas/timer (小程序版番茄时钟)
https://github.com/hijiangtao/weapp-newsapp (微信小程序-公众号热门文章信息流)
https://github.com/zhengxiaowai/weapp-github (微信小程序--github)
https://github.com/vace/wechatapp-news-reader (微信小程序 —— 新闻阅读器)
https://github.com/natee/wxapp-2048 (微信小程序2048)

下一步计划

在掌握小程序开发的基础只是后,后面我将会多做小程序的实战项目,掌握小程序的开发框架、收集小程序常用的插件、样式UI库,以及汇总小程序开发过程的问题收获。
最后,如果文章中存在错误或者是歧义的地方,也或者您有更好的建议,请务必跟我联系或者给我留言。
感谢您的批评指正!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwdpg.html