私はすでにWhatsappに写真を共有することができますが、これを行う方法は、UIActivityViewController
でWhatsappオプションを提供し、次にUIDocumentInteractionController
を表示することです。
このUIDocumentInteractionController
から、ユーザーをWhatsappにリダイレクトし、写真を共有できるようにするWhatsappオプションを選択します。
これまでのところ、私のコードは次のようになっています。
if ([activityType isEqualToString:@"whatsappSharing"]) {
if ([[UIApplication sharedApplication] canOpenURL: [NSURL URLWithString:@"whatsapp://app"]]) {
NSString *savePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/whatsAppTmp.wai"];
[UIImageJPEGRepresentation(finalImage, 1.0) writeToFile:savePath atomically:YES];
weakDocumentInteraction = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:savePath]];
weakDocumentInteraction.UTI = @"net.whatsapp.image";
weakDocumentInteraction.delegate = weakSelf;
[weakDocumentInteraction presentOpenInMenuFromRect:CGRectZero inView:weakSelf.view animated:YES];
}
}
UIActivityViewController
からオプションを選択して、Whatsappを直接表示できるようにしたい。
UIDocumentInteractionController
を提示し、プログラムでWhatsappアプリオプションを選択するこの2番目の部分にジャンプする方法はありますか?
現在、ユーザーは画像を共有するためにWhatsappオプションを2回選択する必要があります。
PS:他のアクティビティも使用しているため、UIActivityViewController
を使用しています。
したがって、基本的には、FacebookまたはWhatsappを介して画像を共有し、さらに画像を保存するオプションを提供する必要があります。
さて... 2つの最も速い方法のためにこれをゆっくりと分解しましょう。
UIActivityViewController
経由UIActivityViewController
を介して画像を共有する場合、Whatsappオプションを提供するには、カスタムUIActivity
を作成する必要があります ( Stackoverflowの質問を参照 )。
これに関する問題は次のとおりです。
UIDocumentInteractionController
経由UIDocumentInteractionController
を介して画像を共有する場合、Facebookオプションを提供するには、UTIをpublic.image
として指定する必要があります。
これに関する問題は次のとおりです。
public.image
UTIは、FacebookやWhatsappだけでなく、UIDocumentInteractionController
に多くのオプションを入力します。Save
オプションの場合-presentOpenInMenuFromRect:inView:animated:
メソッドを使用しています...-presentOptionsMenuFromRect:inView:animated:
を表示するには、Save to Album
メソッドを使用する必要があります。 しかしこれにはMail
などの他のオプションが含まれます。UIDocumentInteractionController
のみを使用する場合は、上記の理由によりjustFacebook + Whatsapp + Save()を表示できないという事実を受け入れる必要があります)
UIActivityViewController
を使用していて、WhatsappのカスタムUIActivity
を作成したくない場合は、but...を使用することにした場合はスタックします。カスタムUIActivity
の場合、UIActivityViewController
を使用してWhatsappと画像オブジェクトを共有するためのプロビジョニングがないため、まだスタックしています。
justFacebook + Whatsapp + Saveオプションを使用する簡単な方法はないようです。
それを複雑にしているのは、Whatsappで画像を共有する唯一の方法のように見えるUIDocumentInteractionController
を使用するように強制するWhatsappです(currently)そしてURLスキームが制限されているため、UIActivityViewController
で指定しても意味がありません。
さらに、UIDocumentInteractionController
を順番に使用すると、必要以上のオプションを提供できます。
正直なところ、これは今かなり暗いように見えます。
質問を適切に理解している場合は、1 UIDocumentInteractionController
を介して簡単に共有するオプションがあります。古い質問と回答を確認してください: https://stackoverflow.com/a/20887254/849616 。