1

カスタム クラスを使用して Facebook (Xamarin.Facebook.iOS) をゲームに統合することができました (ShareDialog にはコンストラクターが保護されています)。

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();

Localize() は、ローカライズされた文字列を取得するための私の拡張メソッドです (私はこのコードを Windows と Android で使用しています。この拡張機能により、共有コードが快適になります:))。Board.Score は、- そうです - スコアを含む静的 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. すべて正常に動作し、タイムラインで共有が公開されていますが、共有/キャンセルをクリックした後、ダイアログが閉じられません...

私は何を間違っていますか?

4

1 に答える 1

0

1) に変更public voidしてみてくださいpublic override void

dismissModalViewControllerAnimated2) 通知を受け取った後、手動で電話をかける必要があります

于 2015-12-17T15:09:24.253 に答える