Cocos2d-x Lua实现安卓跳转到Facebook应用 | 南锋

南锋

南奔万里空,脱死锋镝余

Cocos2d-x Lua实现安卓跳转到Facebook应用

最近产品提出一个需求,需要在游戏中能够跳转到facebook中打开我们的游戏主页。当时也没有多想,直接就用device.openURL()来打开产品发过来的链接。

然后今天测试的时候就发现了问题,点击facebook按钮无法跳转到facebook 应用,只能打开网页。在网上查了好久的资料,才发现是因为facebook的SDK升级后导致的。

下面说下我的做法,是能够完成产品要求的。当然,涉及到LuaJava的交互
Lua代码:

1
2
3
4
5
6
7
8
function AppInfo.openFacebook(name)
local os = device.platform
if os == "android" then
local sig = "(Ljava/lang/String;)V"
local args = {name}
luaj.callStaticMethod(AppInfo.JAVA_CLASSNAME, "openFacebook", args, sig)
end
end

java代码

1
2
3
4
5
6
7
8
static void openFacebook(final String name){
try {
GameConfig.appContext.getPackageManager().getPackageInfo("com.facebook.katana", 0);
GameConfig.appContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/" + facebookId)));
} catch (Exception e) {
GameConfig.appContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/" + name)));
}
}

Lua与Java详细的交互就不贴出来了~

+