【iOS】共有シート表示のたびに表示内容が変わる
Q&A
Closed
React Nativeでアプリ開発をしています。
共有シート機能をカスタマイズするために、一部のコードをSwiftで記述し、Native ModulesとしてReact Native側で呼び出しています。
共有シートを呼び出す際に「Facebook」と「X (Twitter)」アプリを除外するようにしています。
共有シートの初回呼び出し時はちゃんと両アプリとも除外されているのに、一度共有シートを閉じて再度開くと両アプリとも共有シート内に表示されてしまいます。
その後も共有シートの開く・閉じるを繰り返しても、除外対象のアプリが表示されたりされなかったりしています。
以下のコードのどこが原因で、そのような現象が起きているのでしょうか?
@objc(NativeModuleShare)
class NativeModuleShare: NSObject, RCTBridgeModule {
static func moduleName() -> String!{
return "NativeModuleShare";
}
static func requiresMainQueueSetup () -> Bool {
return true;
}
@objc
func ShowShareSheet(_ title:String, message:String, url:String)->Void {
let itemSource = ShareActivityItemSource(shareImage: UIImage(named: "logoBgWhite")!, shareText: message, shareTitle: title, shareUrl: url)
let activityVC = UIActivityViewController(activityItems: [itemSource, itemSource.shareText],
applicationActivities: nil)
let excludeActivityTypes = [
UIActivity.ActivityType.postToTwitter,
UIActivity.ActivityType.postToFacebook
]
activityVC.excludedActivityTypes = excludeActivityTypes;
DispatchQueue.main.async {
(UIApplication.shared.delegate as? AppDelegate)?.window.rootViewController?.present(activityVC, animated: true, completion: nil);
}
}
}
よろしくお願いいたします。