wechat/base

base module provides frequently used miniprogram APIs extend them as much as one needs, all wechat bindings are asynchronous and returns a Promise

Types

javascript Date object

pub type Date

Values

pub fn add_phone_contact(
  first_name f: String,
  mobile_phone_number mp: String,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.addPhoneContact Add a contact to the phone book

pub fn check_session(
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.checkSession

pub fn choose_contact(
  phone_number p: Bool,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.chooseContact Select a contact from the phone book

pub fn clear_storage(
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.clearStorage

pub fn get_api_category() -> String

wx.getApiCategory Get API category. Used to determine whether the current environment is a mini program, game, etc.

pub fn get_background_fetch_data(
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.getBackgroundFetchData Get background fetch data

pub fn get_background_fetch_token(
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.getBackgroundFetchToken Get background fetch token

pub fn get_clipboard(
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.getClipboardData

pub fn get_env_user_data_path() -> String

wx.env.USER_DATA_PATH Get user data directory path

pub fn get_file_info(
  path p: String,
  digest_algorithm a: String,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.getFileInfo

pub fn get_privacy_contract(
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.getPrivacyContract

pub fn get_privacy_setting(
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.getPrivacySetting

pub fn get_random_values(length l: Int) -> object.JsObject

Encryption (Random)

wx.getRandomValues Get cryptographically secure random numbers

pub fn get_router() -> object.JsObject

Custom Router

wx.router Get custom router

pub fn get_saved_file_list(
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.getSavedFileList

pub fn get_setting(
  subscriptions s: Bool,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.getSetting

pub fn get_storage(
  key k: String,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.getStorage

pub fn get_storage_info(
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.getStorageInfo

pub fn get_system_info(
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.getSystemInfo is duplicated to keep backward compatibility

pub fn get_update_manager() -> object.JsObject

wx.getUpdateManager Get update manager for app updates

pub fn get_user_crypto_manager() -> object.JsObject

User Crypto Manager

wx.getUserCryptoManager Get user crypto manager

pub fn hide_loading(
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.hideLoading

pub fn hide_tabbar(
  animation a: Bool,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.hideTabbar

pub fn login(
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.login

pub fn navigate_back(
  by delta: Int,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.navigateBack

pub fn navigate_to(
  to url: String,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.navigateTo

pub fn now() -> Date

get timestamp of Date

pub fn off_app_hide(
  callback cb: fn(object.JsObject) -> Nil,
) -> Nil

wx.offAppHide Remove app hide listener

pub fn off_app_show(
  callback cb: fn(object.JsObject) -> Nil,
) -> Nil

App Event Off Listeners

wx.offAppShow Remove app show listener

pub fn off_error(callback cb: fn(object.JsObject) -> Nil) -> Nil

wx.offError Remove error listener

pub fn off_lazy_load_error(
  callback cb: fn(object.JsObject) -> Nil,
) -> Nil

wx.offLazyLoadError Remove lazy load error listener

pub fn off_page_not_found(
  callback cb: fn(object.JsObject) -> Nil,
) -> Nil

wx.offPageNotFound Remove page not found listener

pub fn off_theme_change(
  callback cb: fn(object.JsObject) -> Nil,
) -> Nil

wx.offThemeChange Remove theme change listener

pub fn off_unhandled_rejection(
  callback cb: fn(object.JsObject) -> Nil,
) -> Nil

wx.offUnhandledRejection Remove unhandled rejection listener

pub fn on_background_fetch_data(
  callback cb: fn(object.JsObject) -> Nil,
) -> Nil

wx.onBackgroundFetchData Listen for background fetch data event

pub fn open_document(
  path p: String,
  of t: String,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.openDocument

pub fn pre_download_subpackage(
  root_dir rd: String,
  name n: String,
) -> object.JsObject

Subpackage Pre-download

wx.preDownloadSubpackage Pre-download subpackage

pub fn redirect_to(
  to url: String,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.redirectTo Redirect to page in app, closing current page

pub fn relaunch(
  to url: String,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.reLaunch

pub fn remove_saved_file(
  file_path fp: String,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.removeSavedFile

pub fn remove_storage(
  key k: String,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.removeStorage

pub fn request(
  method m: String,
  url u: String,
  header h: object.JsObject,
  data d: object.JsObject,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.request Simplified request using object builder pattern For more control, use wechat/network.request() which accepts explicit parameters

pub fn request_payment(
  time_stamp t: String,
  nonce_str n: String,
  pkg p: String,
  sign_type s: String,
  pay_sign ps: String,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.requestPayment

pub fn rewrite_route(
  options o: object.JsObject,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.rewriteRoute Rewrite route with new parameters

pub fn router_add_route_builder(
  router r: object.JsObject,
  name n: String,
  builder b: object.JsObject,
) -> Nil

Router.addRouteBuilder Add route builder

pub fn router_get_route_context(
  router r: object.JsObject,
) -> object.JsObject

Router.getRouteContext Get route context

pub fn router_remove_route_builder(
  router r: object.JsObject,
  name n: String,
) -> Nil

Router.removeRouteBuilder Remove route builder

pub fn save_file(
  path p: String,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.saveFile

pub fn scan_code(
  scan_type st: List(String),
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.scanCode Scan the QR code

pub fn set_background_fetch_token(token t: String) -> Nil

Background Fetch

wx.setBackgroundFetchToken Set background fetch token

pub fn set_clipboard(
  data d: object.JsObject,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.setClipboardData

pub fn set_navigation_bar(
  title t: String,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.setNavigationBarTitle

pub fn set_storage(
  key k: String,
  value v: object.JsObject,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.setStorage

pub fn show_loading(
  title t: String,
  mask m: Bool,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.showLoading

pub fn show_tabbar(
  animation a: Bool,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.showTabbar

pub fn show_toast(
  title t: String,
  icon i: String,
  mask m: Bool,
  duration d: Int,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.showToast

pub fn switch_tab(
  to url: String,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.switchTab

pub fn to_payment(p: String) -> Int

utility function convert string to wechat payment

Examples

> to_payment("2.9")
290

> to_payment("129.013")
12901
pub fn update_manager_apply_update(um: object.JsObject) -> Nil

UpdateManager.applyUpdate Apply the update and restart

pub fn update_manager_on_check_for_update(
  um: object.JsObject,
  callback cb: fn(object.JsObject) -> Nil,
) -> Nil

UpdateManager.onCheckForUpdate Listen for update check event

pub fn update_manager_on_update_failed(
  um: object.JsObject,
  callback cb: fn(object.JsObject) -> Nil,
) -> Nil

UpdateManager.onUpdateFailed Listen for update failed event

pub fn update_manager_on_update_ready(
  um: object.JsObject,
  callback cb: fn(object.JsObject) -> Nil,
) -> Nil

UpdateManager.onUpdateReady Listen for update ready event

pub fn update_wechat_app(
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

Phase 17: Base/System (Remaining)

wx.updateWeChatApp Update client version. Jump to WeChat update page when client version is too low.

pub fn upload_file(
  to url: String,
  path p: String,
  header h: object.JsObject,
  form f: object.JsObject,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.uploadFile

pub fn user_crypto_manager_get_latest_user_key(
  manager m: object.JsObject,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

UserCryptoManager.getLatestUserKey Get latest user key

pub fn user_crypto_manager_get_random_values(
  manager m: object.JsObject,
  length l: Int,
) -> object.JsObject

UserCryptoManager.getRandomValues Get random values from crypto manager

pub fn vibrate_long(
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.vibrateLong

pub fn vibrate_short(
  of t: String,
  complete cb: fn() -> Nil,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

wx.vibrateShort

pub fn ymd(
  d: Date,
) -> promise.Promise(Result(object.JsObject, object.WechatError))

utility function to convert Date to local YYYY-MM-DD asynchronous, a test is written as showcase

Search Document