Xamarin.iOS で新しい SnapChat Creative Kit を実装しようとして、Objective Sharpie を使用して SDK フレームワークをバインドしました。他の SDK の公式ドキュメント (swift と obj-c の実装手順のみが含まれています) に従っている間、問題はありません - ログイン キットの実装に成功しました - コンテンツを SnapChat に送信しようとしているときに、このコードでつまずきました。
特に、 Documentationでは、コンテンツを API に送信するために、次のコードが使用されます。
// swift
let snapImage = /* Set your image here */
let photo = SCSDKSnapPhoto(image: snapImage)
let snap = SCSDKSnapPhotoContent(snapPhoto: photo)
let api = SCSDKSnapAPI(content: snap)
api.startSnapping({ (error: Error?) in
/* Error handling */
})
ドキュメントによると、
SCSDKPhotoSnapContent は、SCSDKSnapContent プロトコルの実装です。Snapchat で共有するための写真スナップをモデル化する方法を提供します。
これが私のC#実装です:
var snapImage = GetCurrentScreenImage();
SCSDKSnapPhoto photo = new SCSDKSnapPhoto(snapImage);
SCSDKPhotoSnapContent snapPhoto = new SCSDKPhotoSnapContent(photo)
SCSDKSnapAPI api = new SCSDKSnapAPI(snapPhoto);
api.StartSnappingWithCompletionHandler((NSError error) =>
{
// Error handling
});
問題は、SCSDKSnapAPI コンストラクターが抽象クラスである SCSDKSnapContent のみを受け入れ、その実装ではなく、それを呼び出すとエラーが発生することです。
CS1503 引数 1: 'SCSDKCreativeKit_Bindings.SCSDKPhotoSnapContent' から 'SCSDKCreativeKit_Bindings.SCSDKSnapContent' に変換できません
編集:
ApiDefinition.cs
[Export("initWithContent:")]
IntPtr Constructor(SCSDKSnapContent content);
次のような別のコンストラクターを追加してみました。
[Export("initWithContent:SCSDKPhotoSnapContent")]
IntPtr Constructor(SCSDKPhtotoSnapContent content);
コードがビルドされましたが、コールバック時に SnapChat から次のエラー コードを受け取りました。
SnapEncryptionMetadataUnexpectedStatusCode