Skip to content

接口說明

路由接口

接口說明
wx.miniProgram.navigateTo保留當前頁面,跳轉到應用內的某個頁面。 但是不能跳到tabBar頁面
wx.miniProgram.navigateBack關閉當前頁面,返回上一頁面或多級頁面
wx.miniProgram.switchTab跳轉到tabBar頁面,並關閉其他所有非tabBar頁面
wx.miniProgram.reLaunch關閉所有頁面,打開到應用內的某個頁面
wx.miniProgram.redirectTo關閉當前頁面,跳轉到應用內的某個頁面。 但是不允許跳轉到tabBar頁面

TIP

JSSDK路由接口參數與 小程序路由接口 一致,但無法觸發success/fail/complete回呼函數。

示例代碼:

js
wx.miniProgram.navigateTo({url: '/path/to/page'})
wx.miniProgram.navigateBack({delta: 1})
wx.miniProgram.switchTab({url: '/path/to/page'})
wx.miniProgram.reLaunch({url: '/path/to/page'})
wx.miniProgram.redirectTo({url: '/path/to/page'})

跳轉接口

接口說明
wx.navigateToMiniProgram打開另一個小程序
wx.exitMiniProgram關閉當前小程序
wx.navigateBackMiniProgram返回到上一個小程序,只有在當前小程序是被其他小程序打開時可以調用成功

TIP

JSSDK跳轉接口參數與 小程序跳轉接口 一致。

示例代碼:

js
wx.navigateToMiniProgram({
  appId: 'appId',
  envVersion: 'release',
  success: (res) => {
    console.log('navigateToMiniProgram success', res)
  },
  fail: (err) => {
    console.log('navigateToMiniProgram fail', err)
  }
})

wx.exitMiniProgram({
  success: (res) => {
    console.log('exitMiniProgram success', res)
  },
  fail: (err) => {
    console.log('exitMiniProgram fail', err)
  }
})

wx.navigateBackMiniProgram({
  success: (res) => {
    console.log('navigateBackMiniProgram success', res)
  },
  fail: (err) => {
    console.log('navigateBackMiniProgram fail', err)
  }
})

導航欄接口

接口說明
wx.setNavigationBarTitle動態設定當前頁面導航欄的標題

示例代碼:

TIP

JSSDK導航欄接口參數與 小程序導航欄接口 一致。

示例代碼:

js
wx.setNavigationBarTitle({
  title: 'TCMPP',
  success: (res) => {
    console.log('setNavigationBarTitle success', res)
  },
  fail: (err) => {
    console.log('setNavigationBarTitle fail', err)
  }
})

小程序數據緩存接口

接口說明
wx.getStorage從本地緩存中非同步獲取指定key的內容
wx.setStorage將資料存儲在本地緩存中指定的key中。 會覆蓋掉原來該key對應的內容
wx.removeStorage從本地緩存中移除指定key
wx.clearStorage清理本地數據緩存
wx.getStorageInfo非同步獲取當前storage的相關資訊

TIP

JSSDK數據緩存接口參數與 小程序數據緩存接口 一致。

示例代碼:

js
wx.getStorage({
  key: 'name',
  success: (res) => {
    console.log('getStorage success', res)
  },
  fail: (err) => {
    console.log('getStorage fail', err)
  }
})

wx.setStorage({
  key: 'name',
  data: 'TCMPP',
  success: (res) => {
    console.log('setStorage success', res)
  },
  fail: (err) => {
    console.log('setStorage fail', err)
  }
})

wx.removeStorage({
  key: 'name',
  success: (res) => {
    console.log('removeStorage success', res)
  },
  fail: (err) => {
    console.log('removeStorage fail', err)
  }
})

wx.clearStorage({
  success: (res) => {
    console.log('clearStorage success', res)
  },
  fail: (err) => {
    console.log('clearStorage fail', err)
  }
})
  
wx.getStorageInfo({
  success: (res) => {
    console.log('getStorageInfo success', res)
  },
  fail: (err) => {
    console.log('getStorageInfo fail', err)
  }
})

媒體接口

事件分類說明接口
圖片接口從本地相册選擇圖片或使用相機拍照。wx.chooseImage
在新頁面中全屏預覽圖片wx.previewImage
獲取本地圖片base64(僅IOS支持)wx.getLocalImgData
錄音接口開始錄音wx.startRecord
停止錄音wx.stopRecord
音訊接口開始播放音訊wx.playVoice
暫停正在播放的音訊wx.pauseVoice
結束播放音訊wx.stopVoice

TIP

JSSDK媒體接口參數與 小程序媒體接口 一致。

示例代碼:

js
wx.chooseImage({
  count: 2,
  sizeType: ['original', 'compressed'],
  sourceType: ['album', 'camera'],
  success: (res) => {
    console.log('chooseImage success', res)
    
    const imagePaths = res.tempFilePaths
    wx.previewImage({
      urls: imagePaths,
      success: (res) => {
        console.log('previewImage success', res)
      },
      fail: (err) => {
        console.log('previewImage fail', err)
      }
    })
      
    wx.getLocalImgData({
      filePath: imagePaths[0],
      success: (res) => {
        console.log('getLocalImgData success', res)
      },
      fail: (err) => {
        console.log('getLocalImgData fail', err)
      }
    })
  },
  fail: (err) => {
    console.log('chooseImage fail', err)
  }
})

wx.startRecord({
  success: (res) => {
    console.log('startRecord success', res)
  
    const recordFilePath = res.tempFilePath
    wx.playVoice({
      filePath: recordFilePath,
      success: (res) => {
        console.log('playVoice success', res)
      },
      fail: (err) => {
        console.log('playVoice fail', err)
      }
    })
  },
  fail: (err) => {
    console.log('startRecord fail', err)
  }
})
  
wx.stopRecord({
  success: (res) => {
    console.log('stopRecord success', res)
  },
  fail: (err) => {
    console.log('stopRecord fail', err)
  }
})

wx.pauseVoice({
  success: (res) => {
    console.log('pauseVoice success', res)
  },
  fail: (err) => {
    console.log('pauseVoice fail', err)
  }
})
  
wx.stopVoice({
  success: (res) => {
    console.log('stopVoice success', res)
  },
  fail: (err) => {
    console.log('stopVoice fail', err)
  }
})

位置接口

接口說明
wx.getLocation獲取當前地理位置資訊
wx.openLocation使用App內寘地圖查看位置
wx.chooseLocation打開地圖選擇位置

TIP

JSSDK位置接口參數與 小程序位置接口 一致。

示例代碼:

js
wx.getLocation({
  success: (res) => {
    console.log('getLocation success', res)
  
    const latitude = res.latitude
    const longitude = res.longitude
    wx.openLocation({
      latitude,
      longitude,
      success: (res) => {
        console.log('openLocation success', res)
      },
      fail: (err) => {
        console.log('openLocation fail', err)
      }
    })
     wx.chooseLocation({
      latitude,
      longitude,
      success: (res) => {
        console.log('chooseLocation success', res)
      },
      fail: (err) => {
        console.log('chooseLocation fail', err)
      }
    })
  fail: (err) => {
    console.log('getLocation fail', err)
  }
})

文件接口

接口說明
wx.openDocument打開文件(Android僅支持PDF,iOS支持的文件類型同系統的wkwebview)

TIP

示例代碼:

js
wx.openDocument({
  filePath: '/path/to/file',
  success: (res) => {
    console.log('openDocument success', res)
  },
  fail: (err) => {
    console.log('openDocument fail', err)
  }
})

設備接口

接口說明
wx.scanCode調起用戶端掃碼介面進行掃碼
wx.getNetworkType獲取網絡類型

TIP

JSSDK設備接口參數與 小程序設備接口 一致。

示例代碼:

js
wx.scanCode({
  success: (res) => {
    console.log('scanCode success', res)
  },
  fail: (err) => {
    console.log('scanCode fail', err)
  }
})

wx.getNetworkType({
  success: (res) => {
    console.log('getNetworkType success', res)
  },
  fail: (err) => {
    console.log('getNetworkType fail', err)
  }
})

通信接口

接口說明
wx.miniProgram.postMessage向小程序發送消息,會在以下特定時機觸發web-view組件的message事件:小程序後退、組件銷毀、分享等
wx.miniProgram.onWebviewEventH5監聽小程序發送的消息事件
wx.miniProgram.offWebviewEventH5移除監聽小程序發送的消息事件
wx.miniProgram.sendWebviewEvent向小程序發送消息,觸發 web-view 組件的event事件

H5發送消息事件給小程序

js
// H5 javascript
wx.miniProgram.postMessage({ data: {name: 'TCMPP'} })

wx.miniProgram.sendWebviewEvent({ data: {message: 'Hi TCMPP'} })
html
<!-- Mini program /pages/index/index.wxml -->
<web-view src="https://xxx.xxx" bindmessage="onMessage" bindevent="onEvent"></web-view>
js
Page({
  onMessage(e) {
    console.log(e.detail.data) // [{"name":"TCMPP"}]
  },
  onEvent(e) {
    console.log(e.detail.data) // {"message":"Hi TCMPP"}
  }
})

小程序發送消息事件給H5

js
wx.sendWebviewEvent({
  message: "I'm Miniprogram, I received"
})
js
// H5 javascript
function onEvent(e) {
  console.log(e.message) // I'm Miniprogram, I received
}
// Register a listener
wx.miniProgram.onWebviewEvent(onEvent)
// Remove the listener
wx.miniProgram.offWebviewEvent(onEvent)

其他接口

接口說明
wx.miniProgram.getEnv獲取當前環境
wx.canGoBack當前H5頁面是否可返回上一頁
wx.checkJsApi判斷當前用戶端版本是否支持指定JS接口
wx.invokeNativePluginH5調用用戶端自定義API

獲取當前環境

在H5網頁內可以通過以下三種方式判斷是否在小程序web-view環境:

  • 通過wx.miniProgram.getEnv接口。
js
// H5 javascript
wx.miniProgram.getEnv((res) => {
  console.log(res.miniprogram) // true
})
  • 通過window.__ wxjs_environment變量判斷,建議在WeixinJSBridgeReady事件的回呼函數中使用。

示例代碼:

js
// H5 javascript
function ready() {
  console.log(window.__wxjs_environment === 'miniprogram') // true
}
if (!window.WeixinJSBridge || !WeixinJSBridge.invoke) {
  document.addEventListener('WeixinJSBridgeReady', ready, false)
} else {
  ready()
}
  • 通過判斷userAgent中是否包含miniProgram關鍵字來判斷。

示例代碼:

js
// H5 javascript
// "Mozilla/...... miniProgram TMA/mp6iu47n4rps6zwz": Contains miniProgram and the AppID(Mini Program ID).
console.log(window.navigator.userAgent);

獲取web-view的URL

用戶分享時可獲取當前web-view的URL,即在onShareAppMessage回檔中返回webViewUrl參數。

示例代碼:

js
// Miniprogram javascript
Page({
  onShareAppMessage(options) {
    console.log(options.webViewUrl)
  }
})

判斷H5是否可返回上一頁

用於判斷是否可以返回到H5的上一個頁面或狀態的布林值,即當前導航棧中是否有可以返回的頁面。

示例代碼:

js
// H5 javascript
wx.canGoBack({
  success: (res) => {
    console.log('canGoBack success', res.canGoBack) // true/false
  },
  fail: (err) => {
    console.log('canGoBack fail', err)
  }
})

獲取用戶端接口支持情况

用於判斷當前用戶端版本是否支持指定JS接口。

示例代碼:

js
// H5 javascript
wx.checkJsApi({
  jsApiList: ['chooseImage'],
  success: (res) => {
    // Return as a key-value pair, true for available APIs and false for unavailable APIs.
    // For example: {"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
    console.log('checkJsApi success', res)
  },
  fail: (err) => {
    console.log('checkJsApi fail', err)
  }
})

調用用戶端自定義API

H5中調用用戶端的自定義API。

示例代碼:

js
// H5 javascript
invokeNativePlugin() {
  let opts = {
    api_name: 'customApiName', // Custom API name
    data: JSON.parse(this.apiData || '{}'), // API request parameters
    success: (res) => {
      console.log('invokeNativePlugin success', res)
    },
    fail: (err) => {
      console.log('invokeNativePlugin fail', err)
    }
  }
  wx.invokeNativePlugin(opts); // Call custom APIs
}