有以下代码:
FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(this)
.setLink("some url")
.build();
uiHelper.trackPendingDialogCall(shareDialog.present());
它代码对我有用,一切都很好。但是存在以下问题:如果设备上不存在原生Facebook应用程序,那么我的代码会抛出异常。我该如何解决?是否可以通过浏览器发布,或者如果用户没有安装Facebook应用程序,我必须禁用在墙上发布的功能?
异常:
com.facebook.FacebookException: Unable to create Intent; this likely means the Facebook app is not installed.
答案 0 :(得分:0)
在FacebookDialog中有一个canPresentShareDialog方法,您应该在创建和呈现FacebookDialog之前检查它。 canPresent方法将检查Facebook应用程序的存在以及应用程序的版本(以确保它兼容)。
如果canPresentShareDialog失败,那么您可以使用WebDialog类来呈现共享对话框的webview版本(称为Feed对话框)。