微信小程序实习记

看起来还算有趣

关于图片

  • 图片放大后,用户可以直接保存下载
  • 参数是个数组,可以在放大后左右翻动
  • 按钮下载功能,顺序是,先下载文件,然后缓存的图片调用 saveImageToPhotoAlbum
Page({
  // 放大
  handleExpend: function () {
    wx.previewImage({
      urls:[url]
    })
  },
  // 下载
  handleDownload: function () {
    wx.dowloadFile({
      url:url,
      success:res=>{
        if (res.statusCode ===200) {
          wx.showToast({
            title: '保存成功',
            icon: 'success',
            duration: 2000,
          })
          wx.saveImageToPhotoAlbum({
            filePath: res.tempFilePath
          })
        }
      },
      fail:err=>{
        wx.showToast({
          title: '保存失败',
          icon: 'fail',
          duration: 2000
        })
      },
    })
  },
})

关于分享

  • 可以是关于小程序的分享
  • 可以是关于具体功能页面的分享(带参数)
  • 可以区分是自定义按钮的分享,或是右上角的分享
Page({
  // 相关页面,有这个方法即调用了分享功能
  onShareAppMessage: function (res) {
    /*
    res:
      - from       转发事件来源。 button:页面内转发按钮;menu:右上角转发菜单
     */
    return {
      title: [String],
      path: [url?params],
      imageUrl?: [url] //不设置,会被程序自动截取当前页面
    }
  }
})

关于请求

  • 一般的请求,开发者需要域名备案,和 https 请求, 关于一些个人开发这,这过程会略显麻烦
  • 使用云开发环境,可以使用云函数来提供参数特殊的请求方式,绕过备案和 https 检测

过程

  • 新建云函数
  • 下载相关请求 npm 包(如 request && request-promise)
  • 编写相关云函数 api
  • 小程序中初始化云函数,调用相关云函数
// 云函数 api
const request = require('request-promise');

export.main = async (event, context) => {
  return await request({
    method: event.method || 'GET',
    uri: event.uri,
    headers: event.headers || {},
    body: event.body
  }).then(body => {
    return body;
  }).catch(err => {
    return err
  })
}

// 小程序

// app 内初始化
App({
  onLaunch: function () {
    if (wx.cloud) {
      wx.cloud.init({
        env:['相关云开发环境名称']
      })
    }
  }
})

// page 调用
[handleFunction]:()=>{
   wx.cloud.callFunction({
        name: ['相关云函数'],
        data: {
            // http域名 https域名 第三方域名 非验证域名 IP[:prot] 内网IP或花生壳域名
            uri:[url],
            headers: {
                'Content-Type':'application/json'
            },
            body:[params]
        }
    }).then(res => {
        console.log(res)
        const data = res.result
        console.log(data)
        // do something
    })
}

关于 IconFont

  • 创建自定义组件
  • 阿里图库,需要的 Icon 放入自己的项目
  • 下载,选中 css 文件内容复制到自定义组件内的 wxss 文件内

<text class="iconfont icon-"></text>

Component({
  options: {
    styleIsolation: 'apply-shared' // 样式可被 page影响
  },
  properties: {
    icon: String
  }
})

小结

该项目属于一次个人的体验,也算是给自己接触小程序开发的一个契机,目前感觉还是很良好的

欢迎各位关注一下我的小程序,没有复杂的功能,也不需要账号信息,希望得到大佬的指点一二