Facebook小游戲
Facebook小游戲分享接口主要有兩種:
1. FBInstant.shareAsync
可以自定義標題山卦、分享圖岩饼、傳參等,發(fā)布動態(tài)低剔,沒有分享回調(diào)速梗。
2. FBInstant.context.chooseAsync
準確說是“與好友一起玩”,切換游戲環(huán)境襟齿,有分享回調(diào)姻锁。如果要推送消息給好友,需要配合FBInstant.updateAsync進行調(diào)用蕊唐。
Facebook中關于分享圖的選取屋摔,必須傳入base64格式字符串烁设,而不允許傳入imageUrl替梨。
有兩種思路:
一、程序中借助canvas装黑,動態(tài)將圖片資源生成對應的base64數(shù)據(jù)
var GetBase64Image = function (imageUrl, callback)
{
function getBase64(img)
{
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, img.width, img.height);
var dataURL = canvas.toDataURL();
canvas = null;
return dataURL;
}
var image = new Image();
image.src = imageUrl;
image.setAttribute('crossOrigin', 'anonymous');
image.onload = function(){
var base64 = getBase64(image);
console.log("[GetBase64Image] 2", base64);
callback(base64);
}
};
二副瀑、直接加載轉(zhuǎn)換好的base64圖片數(shù)據(jù),省去動態(tài)轉(zhuǎn)換過程恋谭,理論上更好些糠睡。
提供一個批處理:
const fs = require('fs');
const path = require('path');
const mineType = require('mime-types');
let origin = "./base64_images/";
let target = "./base64_json/";
let index = 0;
fs.readdir(origin, (err, files) => {
files.forEach(file => {
index++;
console.log(">> " + file);
var file_name = file.split(".")[0];
let filePath = path.resolve(origin + file);
let data = fs.readFileSync(filePath);
var base64Img = data.toString('base64');
base64Img = "data:image/jpg;base64," + base64Img;
fs.writeFileSync(target + file_name + ".json", JSON.stringify({"imageData": base64Img}));
});
console.log("count: " + index, "\nDone!");
});
Github參考地址:
https://github.com/pury/SPTools/tree/master/image2base64data