Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从libgdx打开android应用程序_Android_Facebook_Libgdx - Fatal编程技术网

从libgdx打开android应用程序

从libgdx打开android应用程序,android,facebook,libgdx,Android,Facebook,Libgdx,我会通过libgdx上的按钮(Android版)在facebook上分享一个链接 此代码有效,但仅启动web浏览器: Gdx.net.openURI("https://www.facebook.com/sharer/sharer.php?u=http://www.example.com"); 我想用Facebook应用程序打开此共享视图 如果有人能帮忙 谢谢这是在libgdx中调用Android api的通用方法。我不认为Facebook应用程序实际上有一个“共享”活动,你可以不在你的应用程序

我会通过libgdx上的按钮(Android版)在facebook上分享一个链接

此代码有效,但仅启动web浏览器:

Gdx.net.openURI("https://www.facebook.com/sharer/sharer.php?u=http://www.example.com");
我想用Facebook应用程序打开此共享视图

如果有人能帮忙


谢谢

这是在libgdx中调用Android api的通用方法。我不认为Facebook应用程序实际上有一个“共享”活动,你可以不在你的应用程序中实现Facebook SDK,所以我只做一个简单的Facebook链接示例

创建如下界面:

public interface FacebookLinkHandler{
    public void openFacebookPage(String facebookAppURI, String facebookWebURL);
}
然后在游戏子类中,添加以下接口之一作为构造函数参数:

public class MyGame extends Game{
    //...
    FacebookLinkHandler mFacebookLinkHandler;

    public MyGame(..., FacebookLinkHandler facebookLinkHandler){
        //...
        mFacebookLinkHandler = facebookLinkHandler;
    }

    //And when you want to go to the link:
    mFacebookLinkHandler.openFacebookPage(
        "fb://profile/4", "https://www.facebook.com/zuck");

}
然后,在桌面应用程序中,您可以创建仅使用回退的版本:

public class DesktopFacebookLinkHandler implements FacebookLinkHandler{
    public void openFacebookPage(String facebookAppURI, String facebookWebURL){
        Gdx.net.openURI(facebookWebURL);
    }
}
并在DesktopStarter类中将其传递给MyGame构造函数。然后在Android项目中,您可以选择:

public class AndroidFacebookLinkHandler implements FacebookLinkHandler{
    Activity mActivity;

    public AndroidFacebookLinkHandler(Activity activity){
        mActivity = activity;
    }

    public void openFacebookPage(String facebookAppURI, String facebookWebURL){
        Intent intent = null;        
        try {
            mActivity.getPackageManager().getPackageInfo("com.facebook.katana", 0);
            intent = new Intent(Intent.ACTION_VIEW, Uri.parse(facebookAppURI));
        } catch (NameNotFoundException e) {
            intent = new Intent(Intent.ACTION_VIEW, facebookWebURL));
        }
        mActivity.startActivity(intent);
    }
}

做同样的事情。在AndroidStarter类中实例化MyGame类时,将其实例传递给MyGame类。

执行此操作:。如果您也在运行游戏的桌面版本,那么您需要创建一个用于处理此问题的界面,并在Android项目中创建该界面的实现,并将其传递给您的游戏。感谢您的帮助!这可以帮助我,但如何通过libgdx启动intent呢。我看了一个关于接口及其实现的教程,但我不理解。