2015-12-17 50 views
1

我設法整合Facebook(Xamarin.Facebook.iOS)我有自定義類遊戲(ShareDialog保護了構造函數):Facebook共享對話框不關閉/取消

public class MyShareDialog : Facebook.ShareKit.ShareDialog 
    { 
     public MyShareDialog() : base(NSObjectFlag.Empty) 
     { 
     } 
    } 

然後我創建並顯示對話框:

string url = "http://my-url.com/class-to-generate-picture.php?score=" + Board.Score + "&textUp=" + 
System.Web.HttpUtility.UrlEncode("facebook_I_Scored".Localize()); 

       var myShareDialog = new MyShareDialog(); 


       var content = new Facebook.ShareKit.ShareLinkContent { 
        ContentDescription = "facebook_URLTitle".Localize(), 
        ContentTitle = "facebook_URLDescription1".Localize() + " " + 
         Board.Score + " " + "facebook_URLDescription2".Localize(), 
        ImageURL = new NSUrl(url)}; 
       content.SetContentUrl(new NSUrl("http://my-url.com")); 

       myShareDialog.SetShareContent(content); 
       myShareDialog.SetDelegate(new MyShareDelegate()); 

       myShareDialog.Show(); 

本地化()是我的擴展方法來獲得本地化的字符串(我使用的Windows和Android的代碼,而這個擴展讓我的共享代碼:)舒適)。 Board.Score是一個包含-yeah分數的靜態int。

MyShareDelegate:

public class MyShareDelegate : Facebook.ShareKit.ISharingDelegate 
{ 
public IntPtr Handle { get; } 

    public void DidComplete (Facebook.ShareKit.ISharing sharer, NSDictionary results) 
    { 
    } 

    public void DidFail (Facebook.ShareKit.ISharing sharer, NSError error) 
    { 
    } 

    public void DidCancel (Facebook.ShareKit.ISharing sharer) 
    { 
    } 

    public void Dispose() 
    { 

    } 
} 

我有2個問題:

  1. DidComplete/DidFail/DidCancel不會被調用。

  2. 一切正常,份額被髮表在時間軸但點擊後SHARE /取消沒有被關閉對話框......

我在做什麼錯?

回答

0

1)嘗試將public void更改爲public override void

2)需要手動調用dismissModalViewControllerAnimated接收商品通知

+0

的倍率在這裏,我覺得不適後 - 這是接口的實現,而不是一個derrived類。如果沒有工作「DidComplete」,我沒有一個地方可以把這種方法... – WojGrze

+0

我改變了MyShareDelegate到: 公共類MyShareDelegate:Facebook.ShareKit.SharingDelegate和overrode這些方法,但仍然沒有運氣(我試圖顯示UIAlertView取消/完成後)... – WojGrze

+0

所以在刪除後'yShareDialog.SetShareContent(content);'沒有什麼可以共享失敗,DidFail被調用。但DidComplete/DidCancel仍然沒有成功... – WojGrze