mpapi (miniProgram API) は、一度記述すれば複数の端末で実行できるミニプログラム API 互換プラグインです。
⏰ 更新日:2019-05-31、ミニプログラム機能は常に更新されており、新しいバージョンは異なる場合がありますので、ご注意ください。
このプロジェクトが解決する問題: さまざまなミニ プログラム API 間の違いを見つけ、複数のミニ プログラムと互換性のある API セットを使用してみます。
api.showToast
string
を直接渡すことができ、 api.setStorageSync
try catch 等
request
、 downloadFile
、details などの特別な API のイベント処理をサポートします。api.isWechat
、 api.isAlipay
、 api.isSwan
、 api.isTt
npm install mpapi --save
npm 以外のインストール方法。lib lib
にあるmpapi.js
プロジェクトに直接導入するだけです。
const api = require ( 'mpapi' )
api . alert ( { ... } ) . then ( ( res ) => { } )
api . confirm ( { ... } ) . then ( ( res ) => { } )
api . getLocation ( ) . then ( ( res ) => { } )
. . .
request
、 downloadFile
、 uploadFile
など。すべてのミニプログラムで使用できるAPI
交流
alert
confirm
showToast
showLoading
showActionSheet
ナビゲーションバー
setNavigationBarTitle
setNavigationBarColor
書類
saveFile
getFileInfo
getSavedFileInfo
getSavedFileList
removeSavedFile
写真
chooseImage
previewImage
compressImage
saveImageToPhotosAlbum
聞く
request
uploadFile
downloadFile
データキャッシュ
setStorageSync
getStorageSync
clearStorageSync
getStorageInfoSync
removeStorageSync
システム機器
getSystemInfoSync
setScreenBrightness
getScreenBrightness
makePhoneCall
scanCode
setClipboardData
getClipboardData
特定のミニ プログラムでのみサポートされます
WeChat アプレット、Alipay アプレット、Baidu スマート アプレット、ByteDance アプレット, アイコンがある場合は、対応するアプレットのみがサポートされていることを意味し、アイコンがない場合はすべてがサポートされていることを意味します。
交流
hideToast
hideLoading
showModal
prompt
キャッシュ
getStorage
setStorage
removeStorage
getStorageInfo
ルーティング
reLaunch
switchTab
redirectTo
navigateTo
navigateBack
位置
getLocation
openLocation
chooseLocation
ファイル画像
saveImage
getImageInfo
chooseVideo
chooseMessageFile
saveVideoToPhotosAlbum
openDocument
オーディオ
stopVoice
playVoice
getAvailableAudioSources
stopBackgroundAudio
playBackgroundAudio
seekBackgroundAudio
pauseBackgroundAudio
getBackgroundAudioPlayerState
setInnerAudioOption
startRecord
stopRecord
stopRecord
ナビゲーションバー
getTitleColor
setNavigationBar
showNavigationBarLoading
hideNavigationBarLoading
背景
setBackgroundTextStyle
setBackgroundColor
showTabBar
hideTabBar
setTabBarItem
setTabBarStyle
showTabBarRedDot
hideTabBarRedDot
setTabBarBadge
removeTabBarBadge
プルダウンして更新します
startPullDownRefresh
stopPullDownRefresh
スクロール
pageScrollTo
sendSocketMessage
connectSocket
closeSocket
startLocalServiceDiscovery
stopLocalServiceDiscovery
上にピン留めする
setTopBarText
キャンバス
canvasGetImageData
canvasPutImageData
canvasToTempFilePath
共有して転送する
getShareInfo
updateShareMenu
showShareMenu
hideShareMenu
showFavoriteGuide
openShare
ログイン、認証、ユーザー情報
login
checkSession
getUserInfo
getAuthCode
getAuthUserInfo
getPhoneNumber
authorize
支払う
tradePay
requestPayment
requestPolymerPayment
オープンインターフェース
getSetting
openSetting
reportAnalytics
chooseInvoiceTitle
navigateToMiniProgram
navigateBackMiniProgram
オープンインターフェース - WeChat アプレット
addCard
openCard
chooseInvoice
startSoterAuthentication
checkIsSoterEnrolledInDevice
checkIsSupportSoterAuthentication
getWeRunData
オープンインターフェース - Alipay アプレット
startZMVerify
textRiskIdentification
addCardAuth
getRunScene
chooseCity
datePicker
optionsSelect
multiLevelSelect
rsa
オープンインターフェース - Baidu スマートアプレット
getSwanId
navigateToSmartProgram
navigateBackSmartProgram
setPageInfo
setMetaDescription
setMetaKeywords
setDocumentTitle
loadSubPackage
連絡担当者
chooseAddress
chooseContact
choosePhoneContact
chooseAlipayContact
addPhoneContact
フォントの読み込み
loadFontFace
システム情報
getSystemInfo
getBatteryInfo
getNetworkType
setKeepScreenOn
startAccelerometer
stopAccelerometer
startCompass
stopCompass
startDeviceMotionListening
stopDeviceMotionListening
startGyroscope
stopGyroscope
vibrate
vibrateShort
vibrateLong
watchShake
setEnableDebug
getServerTime
scan
ブルートゥースワイヤレス
getBeacons
startBeaconDiscovery
stopBeaconDiscovery
startWifi
stopWifi
setWifiList
getWifiList
connectWifi
getConnectedWifi
getBLEDeviceServices
getBLEDeviceCharacteristics
createBLEConnection
closeBLEConnection
writeBLECharacteristicValue
readBLECharacteristicValue
notifyBLECharacteristicValueChange
startBluetoothDevicesDiscovery
stopBluetoothDevicesDiscovery
openBluetoothAdapter
getConnectedBluetoothDevices
getBluetoothDevices
getBluetoothAdapterState
closeBluetoothAdapter
stopHCE
startHCE
getHCEState
sendHCEMessage
サードパーティのプラットフォーム
getExtConfig
ディープレベル API、注意: メソッドには接頭辞$
が付きます
api.ap
api.ap.$faceVerify
api.ap.$navigateToAlipayPage
...
api.ai
api.ai.$ocrIdCard
api.ai.$ocrBankCard
...
API 上のオブジェクトの新しいインスタンス
createMapContext
createVideoContext
createAudioContext
createCameraContext
createInnerAudioContext
createLivePusherContext
createLivePlayerContext
getBackgroundAudioManager
getRecorderManager
createSelectorQuery
getFileSystemManager
createARCameraContext
例:注: メソッドには$
接頭辞が付きます。
let ctx = api . createMapContext ( 'maper' )
ctx . $getCenterLocation ( ) . then ( ( res ) => {
console . log ( 'createMapContext:getCenterLocation' )
console . log ( res )
} )
1. 一貫性のないパラメータ送信
例: showLoading
メソッド、ロードされた表示コピー、WeChat と Baidu のtitle
パラメータ、Alipay のcontent
パラメータは次のようになります。
// 微信
wx . showLoading ( {
title : '加载中'
} )
// 百度
swan . showLoading ( {
title : '加载中'
} )
// 支付宝
my . showLoading ( {
content : '加载中'
} )
// 使用 mpapi 之后,多端兼容
api . showLoading ( '加载中' )
api . showLoading ( {
title : '提示内容'
} )
2. 戻りパラメータが矛盾している
例: showActionSheet
メソッドの実行後、次のように、WeChat と Baidu ではres.tapIndex
、Alipay ではres.index
取得します。
// 微信
wx . showActionSheet ( {
itemList : [ '台球' , '羽毛球' , '篮球' ] ,
success : ( res ) => {
// res.tapIndex
}
} )
// 支付宝
my . showActionSheet ( {
items : [ '台球' , '羽毛球' , '篮球' ] ,
success : ( res ) => {
// res.index
}
} )
// 使用 mpapi,多端兼容
api . showActionSheet ( {
itemList : [ '台球' , '羽毛球' , '篮球' ] ,
success : ( res ) => {
// res.tapIndex
}
} )
3. サポートされていませんが、互換性があります
例: Alipay にはmy.alert
がありますが、WeChat と Baidu にはこのメソッドがありません。ただし、次のように、WeChat のwx.showModal
または Baidu のswan.showModal
を通じてalert
メソッドをカプセル化できます。
api . alert ( '提示内容' )
api . alert ( {
content : '提示内容'
} )
// 请求数据,兼容多端
api . request ( { ... } ) . then ( ( res ) => { } )
4. サポートされておらず、互換性がありません
以下に示すように、一部の API は特定の端末でのみ有効であり、互換性で処理できません。
// 只在支付宝里面有效,微信和百度小程序里面会报错
api . startZMVerify ( { ... } )
// 建议这样处理
if ( api . isAlipay ) {
api . startZMVerify ( { ... } )
}
// 只在微信里面有效,支付宝或百度小程序里面会报错
api . setTopBarText ( { ... } )
// 建议这样处理
if ( api . isWechat ) {
api . setTopBarText ( { ... } )
}
// 百度智能小程序的特殊 API 一样的道理
if ( api . isSwan ) {
api . getSwanId ( ) . then ( ( res ) => { } )
}
1. Promise
スタイルをサポート
すべてのミニ プログラム API は、 success
コールバックが含まれている限り、 Promise
でカプセル化されており、たとえば、両方の記述方法がサポートされています。
// 使用回调
api . showActionSheet ( {
itemList : [ '台球' , '羽毛球' , '篮球' ] ,
success : ( res ) => {
// res.tapIndex
}
} )
// 或者
api . showActionSheet ( {
itemList : [ '台球' , '羽毛球' , '篮球' ]
} ) . then ( ( res ) => {
// res.tapIndex
} )
// 其它
api . setStorage ( { ... } ) . then ( ( res ) => { } )
api . chooseImage ( { ... } ) . then ( ( res ) => { } )
. . .
2. 互換性のあるメソッドで渡され返されるパラメータは、WeChat アプレット呼び出しの対象となります。他の端末と互換性のないパラメータは処理されません(一部のパラメータは処理できず、特定のミニプログラムでサポートされていないため、開発者は注意が必要です)。
api . chooseImage ( {
count : 1 ,
sizeType : [ 'original' , 'compressed' ] , // 只在微信可用
sourceType : [ 'album' , 'camera' ] ,
} ) . then ( ( res ) => {
// res.tempFilePaths 在微信和支付宝都可用
// res.tempFiles 只在微信可用
} )
一部の API は Promise をサポートし、そのイベントを呼び出す必要があるため、次のメソッドを使用できます。
前に:
const downloadTask = wx . downloadFile ( {
url : 'https://example.com/audio/123' , // 仅为示例,并非真实的资源
success ( res ) {
console . log ( res )
}
} )
downloadTask . onProgressUpdate ( ( res ) => {
console . log ( res )
} )
downloadTask . abort ( ) // 取消下载任务
mpapi
使用した後:
const api = require ( 'mpapi' )
const downloadTask = api . downloadFile ( {
url : 'https://example.com/audio/123' // 仅为示例,并非真实的资源
} ) . then ( ( res ) => {
console . log ( 'success' )
console . log ( res )
} )
downloadTask . $event ( 'onProgressUpdate' , ( res ) => {
console . log ( res )
} )
// downloadTask.$event('abort') // 取消下载任务
request
、 uploadFile
、 connectSocket
などの他の API も同様に処理できます。
使用中にバグを発見した場合、または良い提案がある場合は、お気軽に報告してください。
変更ログ