公衆号開発のget LocalImgData互換性の問題


公衆号開発のget LocalImgData互換性の問題
  • 問題
  • ソリューション
  • コード
  • 問題
    最近公衆番号を開発する時、穴がたくさんありますので、記録してください.写真を選んでから裁断プレビューなどの機能が必要です.長い間探してみましたが、やはりwexin_を使っています.jssdkの方が便利です.以下sdkといいます.全部で中の三つのインターフェースchoseImageを使って写真を選んでいます.previewImageは画像get LocalImgDataをプレビューして画像を取得するためのBase 64の前の二つのAPIは大丈夫です.get LocalImgDataのAPIはテストしました.開発ツールとiOSの上では正常ですが、Androidの上で取得したbase 64は問題があって、ラベルを付与できなくなりました.OSが微信内部にあるブラウザが一致しないため、Androidのget LocalImgDataが持っているlocalDataが不足していることを確認しました.
    ソリューション
    二つの考えがあります.一つは、現在の環境がIOSかAndroidかを判断することです.しかし、この案は比較的にややこしいです.IOSには二つのブラウザのカーネルがあります.二つ目の案は、獲得したlocalDataがdataがあるかどうかを判断することです.imageという頭がないなら、それに加えます.
    コード
    window.wx.getLocalImgData({
        localId: id, //    localID
        success:res => {
            let {localData} = res; // localData    base64  ,   img    
            if (localData.startsWith('data:image')) { //          
                //        
                localData = 'data:image/jpeg;base64,' +  localData
            }
            //        
            localData = localData.replace(/\r|
    /g
    , '') } });