美文网首页
微信小程序开发日记

微信小程序开发日记

作者: 灰斗儿 | 来源:发表于2020-01-16 11:07 被阅读0次

    解决单一域名问题

    通常微信小程序只能添加一个https的域名(只能是https),但是如果想要转发一些其他网站的图片之类的东西就需要增加nginx location 规则用于转发流量,突破微信小程序限制

      location /proxy {
        resolver 8.8.8.8; 
        if ($args ~* url=(.*)$){
            proxy_pass $1;
        }
        proxy_set_header Host $proxy_host;
      }
    

    resolver: Nginx0.6.18之后在使用变量(例如上面的$1)来构造某个server地址的时候,需指定dns服务器地址。否则追踪error_log 配置的文件可以发现报错“no resolver defined to resolve”
    似错误,而在proxy_pass 中直接设置地址却不会

    当访问: www.abc.com/ccc/ddd?usernmae=123&pwd=2&gender=3
    $request_uri = /ccc/ddd?usernmae=123&pwd=2&gender=3
    $uri = /ccc/ddd
    $is_args = url中有?就是问号,没有就是空字符
    $args = usernmae=123&pwd=2&gender=3
    

    目前转发https链接多数情况会报错403 forbidden,少量链接可正常访问,后端服务可以把其他网站资源https链接处理成http以暂时解决该问题

    nginx 正则location和proxy_pass 无法并存,可通过location块内正则解决问题,如上面的代码

    动态添加删除组件

    微信小程序不支持类似web dom 的insertHTML操作,可以通过wxml 内for循环组件,js内控制数组数量已实现。

    伪代码

    file: xxx.wxml
    <view wx:for={{array}}>{{item}}</view>  //item为默认数组子项变量名(该名可修改,查文档)
    
    file:xxx.js
    this.data.array.push(1)
    this.data.array.pop(1)
    

    wx.showmodal 自定义

    默认功能有限,例如想要在modal内显示图片就需要自定义

    <modal title="生成的二维码" hidden="{{modalHidden}}" bindconfirm="modalConfirm" bindcancel="modalCandel" confirm-text="保存到相册" cancel-text="关闭">
        <image src="{{imagePath}}" mode='aspectFill'></image>
      </modal>
    

    控制modalHidden的变量即可实现显示与隐藏

    相关文章

      网友评论

          本文标题:微信小程序开发日记

          本文链接:https://www.haomeiwen.com/subject/ilhfzctx.html