1.问题:
我用的是Facebook for unity sdk,facebook like这个功能接口是 js-sdk,Facebook Like文档 ,如果同时使用,会有一些冲突(会导致 facebook for unity sdk登陆失效或者没有回调响应)
这时需要把涉及Like功能的js-sdk 放到一个iframe内。
效果图:
2.解决方案:
默认Unity导出的webgl会生成index.html,创建一个新的html(我称为like.html)
index.html添加一行代码:
<iframe id="fb_like" src="like.html" frameborder="0" style="overflow: hidden"></iframe>
like.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Facebook like</title>
<style>
html, body {
padding: 0;
height: 0;
width: 100%;
height: 100%;
background: transparent;
overflow: hidden;
}
</style>
</head>
<body>
<div id="fb-root"></div>
<script type="text/javascript">
(function () {
var lang = navigator.language.replace('-', '_');
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {
$('#facebook-jssdk').remove();
};
js = d.createElement(s); js.id = id;
js.src = "https://connect.facebook.net/" + lang + "/sdk.js#xfbml=1&version=v2.12&appId=17697707271****";
fjs.parentNode.insertBefore(js, fjs);
//$(document.body).append(js);
}(document, 'script', 'facebook-jssdk'));
})()
</script>
<div class="fb-like" data-href="https://www.facebook.com/RageofKings/" data-width="300" data-layout="standard" data-action="like" data-size="small" data-show-faces="false" data-share="true" data-colorscheme="dark"></div>
</body>
</html>
我们的Facebook版游戏:Rage of Kings
3.另外一种方案
我没有在webgl平台,采用facebook for js sdk,是因为ios ,android平台用的都是unity sdk,已经集成好了,webgl再用js-sdk修改比较麻烦。
当时也考虑一种折衷方案,就是在游戏内弹出对话框,点击跳转到粉丝页,让用户去点Like&Share。