鍍金池/ 問答/HTML5  C  網(wǎng)絡(luò)安全  HTML/ 如何使用支付寶jssdk功能上傳圖片?

如何使用支付寶jssdk功能上傳圖片?

之前的微信H5項目,現(xiàn)在需要接入到支付寶里面,諸如掃碼、選擇和預(yù)覽圖片的功能直接調(diào)用支付寶的jssdk都能實現(xiàn),然而支付寶的jssdk并沒有上傳圖片的功能,有做過支付寶H5開發(fā)的同仁知道解決辦法么?

AlipayJSBridge.call('chooseImage', {
  sourceType: ['camera', 'album'],
  count: 9
}, function (result) {
  const { localIds, apFilePathsV2 } = result
  // 可以從result里面去到localIds和apFilePathsV2這兩個有用的數(shù)組
  // localIds的子元素是一些隨機的字符串
  // apFilePathsV2的元素則是類似于`https://resource/fe4f6db8d03426987eafbb85c5d9d900c.image`之類的字符串
  // 不同于微信jssdk,這里的localId不能用來預(yù)覽圖片,但是apFilePathsV2可以,不過也不知道apFilePathsV2還能用來做啥,翻遍文檔沒有找到任何說明
});

我看到支付寶jssdk的chooseImage接口說明 的后面有這一段:

獲取localID后,如果使用uploadImage接口上傳,此處publicDomain參數(shù)的值應(yīng)和uploadImage接口的publicDomain參數(shù)值的保持一致。

感覺應(yīng)該是有一個uploadImage接口的,但是文檔里面也沒用找到任何說明。


發(fā)現(xiàn)另外一個接口和chooseImage類似,而且功能更全面:

  AlipayJSBridge.call('photo', {
    dataType: 'dataURL',
    imageFormat: 'jpg',
    quality: 75,
    maxWidth: 500,
    maxHeight: 500,
    allowEdit: true,
    multimediaConfig: { // 可選,僅當(dāng)該項被配置時,圖片被傳輸至 APMultimedia
      compress: 2, // 可選,默認為4。 0-低質(zhì)量,1-中質(zhì)量,2-高質(zhì)量,3-不壓縮,4-根據(jù)網(wǎng)絡(luò)情況自動選擇
      business: "multiMedia" // 可選,默認為“NebulaBiz”
    }
  }, function (result) {
    const { dataURL, multimediaID } = result
  });

可以通過這個接口獲取到圖片的內(nèi)容,以及一個叫multimediaID的東西,文檔說:

multimediaID: 標(biāo)識上傳圖片在APMultimedia中的identifier

可是APMultimedia又是什么??我能通過multimediaID干什么事情? 文檔也找不到說明

回答
編輯回答
魚梓

在一個版本略早的支付寶jssdk文檔的pdf版本里面找到了這一段

ap.chooseImage(function(res){
    if(res.apFilePaths && res.apFilePaths.length > 0) {
        ap.uploadFile({
            url: '[請使???服務(wù)器地址]',
            fileType: 'image',
            fileName: 'file',
            filePath: res.apFilePaths[0],
            success: function() {
                ap.alert('上傳成功');
            },
            fail: function() {
                ap.showToast('上傳失敗');
            }
        });
    }
});

看來還是得自己實現(xiàn)上傳服務(wù)才行了。

2018年8月15日 07:20
編輯回答
近義詞

支付寶自定義分享內(nèi)容的接口有嗎?右上角的分享。不是頁面上加個按鈕點擊分享。除了starshare和 ap.share和meta標(biāo)簽,我是vue寫的,單頁面應(yīng)用不可能每個頁面分享內(nèi)容寫到index.html里面,怎么設(shè)置支付寶右上角分享的內(nèi)容呢

2017年9月18日 21:49
編輯回答
解夏

碰巧遇到了這個問題 以為支付寶應(yīng)該也有uploadImage的接口的 然而我也是踏破鐵鞋都找不到啊,不知道小哥哥你有沒有解決呢?

2017年10月28日 03:41