View Source WeChat.MiniProgram.Code (wechat v0.16.0)

小程序码

Summary

Types

自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调

是否需要透明底色,为 true 时,生成透明底色的小程序码

auto_color 为 false 时生效,使用 rgb 设置颜色

小程序页面路径

场景值

二维码的宽度

Types

@type auto_color() :: boolean()

自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调

@type code_options() :: %{
  path: path(),
  width: width(),
  auto_color: auto_color(),
  line_color: line_color(),
  is_hyaline: is_hyaline()
}
@type is_hyaline() :: boolean()

是否需要透明底色,为 true 时,生成透明底色的小程序码

@type line_color() :: map()

auto_color 为 false 时生效,使用 rgb 设置颜色

例如 %{r: "xxx",g: "xxx",b: "xxx"} 十进制表示

@type path() :: String.t()

小程序页面路径

最大长度 128 字节,不能为空;对于小游戏,可以只传入 query 部分,来实现传参效果,如:传入 ?foo=bar, 即可在 wx.getLaunchOptionsSync 接口中的 query 参数获取到 {foo:"bar"}

@type scene() :: String.t()

场景值

最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~, 其它字符请自行编码为合法字符(因不支持%,中文无法使用 UrlEncode 处理,请使用其他编码方式)

scene 字段的值会作为 query 参数传递给小程序/小游戏。用户扫描该码进入小程序/小游戏后,开发者可以获取到二维码中的 scene 值,再做处理逻辑。 调试阶段可以使用开发工具的条件编译自定义参数 scene=xxxx 进行模拟,开发工具模拟时的 scene 的参数值需要进行 encodeURIComponent

@type width() :: 280..1280

二维码的宽度

单位 px。最小 280px,最大 1280px

Functions

Link to this function

create_code(client, path, width \\ 430, options \\ %{})

View Source
@spec create_code(WeChat.client(), path(), width(), code_options()) ::
  WeChat.response()

生成的小程序码 - 官方文档

获取小程序码,适用于需要的码数量较少的业务场景。通过该接口生成的小程序码,永久有效,有数量限制, 详见获取二维码

Link to this function

create_code_unlimited(client, scene, options \\ %{})

View Source
@spec create_code_unlimited(WeChat.client(), scene(), code_options()) ::
  WeChat.response()

生成的小程序码 - 官方文档

获取小程序码,适用于需要的码数量极多的业务场景。通过该接口生成的小程序码,永久有效,数量暂无限制, 详见获取二维码

Link to this function

create_qrcode(client, path, width \\ 430)

View Source
@spec create_qrcode(WeChat.client(), path(), width()) :: WeChat.response()

生成的小程序二维码 - 官方文档

获取小程序二维码,适用于需要的码数量较少的业务场景。通过该接口生成的小程序二维码,永久有效,有数量限制, 详见获取二维码

Link to this function

download(file_path, create_fun)

View Source
@spec download(file_path :: Path.t(), create_fun :: (-> WeChat.response())) ::
  WeChat.response() | :ok | {:error, File.posix()}