导航栏中的Facebook Share按钮显示为无效

时间:2016-01-12 23:23:30

标签: ios swift facebook uinavigationbar

我正在尝试将FB Share按钮实现到导航栏(使用它的设计)。

我使用SLComposeViewController编码共享,一切正常。

我只使用Facebook和Action图标不是我想要的。 我尝试将一个按钮作为FBSDKShareButton添加到导航栏:

enter image description here

但按钮始终处于非活动状态并且看起来很差:

enter image description here

我确信,我在登录到FB的设备上测试我的应用程序。可能是FBSDKShareButton需要一些关于此的信息吗?怎么样?

self.fbShareButton.enabled = true 

在viewDidLoad中不起作用。

当然,我可以制作通常的UIButton并分配创建(或下载)的图像。但有了这个,我失去了本地化和调整大小。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

感谢@Bangdel,但我认为发布更详细的答案很有用:

代码是:

let content : FBSDKShareLinkContent = FBSDKShareLinkContent()
    content.contentURL = NSURL(string: "http://www.stackoverflow.com")
    //content.contentTitle = "<INSERT STRING HERE>"
    //content.contentDescription = "<INSERT STRING HERE>"
    //content.imageURL = NSURL(string: "<INSERT STRING HERE>")

    let button : FBSDKShareButton = FBSDKShareButton()
    button.shareContent = content
    button.frame = CGRectMake((UIScreen.mainScreen().bounds.width - 100) * 0.5, 6, 100, 32)
    //You can be more accurate with CGRectMake parameters,  
    //but usual height of navigation bar is 44
    self.navigationController!.navigationBar.addSubview(button)

在最后的FB SDK中,只有一个content.something可以使用。如果添加了URL - FB将仅发布链接。 Facebook会在页面上找到一个图像,这在FB的观点上是合适的;-)

我在我的设备上测试了这个按钮,它将我链接到那个烦人的页面,当我的设备上已经安装了FB App时,它会询问我的登录名和密码。在我的测试应用程序中,我使用测试用户登录,并且在安装的应用程序中使用我常用的FB登录,可能是这个问题。

答案 1 :(得分:0)

试试这个

    public void btnClick(View v){
    Intent sharingIntent = new Intent(Intent.ACTION_SEND);
    sharingIntent.setType("text/plain");
    //Give any url in uriString
    uriString = "http://www.opencv-tutorial-codes.blogspot.in";
    sharingIntent.putExtra(Intent.EXTRA_TEXT,uriString );
    sharingIntent.setPackage("com.facebook.katana");
    startActivity(sharingIntent);