import Flutter import UIKit @main @objc class AppDelegate: FlutterAppDelegate { override func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { // 获取Flutter引擎 let controller : FlutterViewController = window?.rootViewController as! FlutterViewController // 创建MethodChannel let channel = FlutterMethodChannel(name: "com.chat.auu.snapchat_share/intent", binaryMessenger: controller.binaryMessenger) // 设置方法调用处理器 channel.setMethodCallHandler { [weak self] (call: FlutterMethodCall, result: @escaping FlutterResult) -> Void in // 处理shareToSnapchat方法调用 if call.method == "shareToSnapchat" { // 获取Flutter传递的text参数 let text = call.arguments as? [String: Any]? ?? [:] let shareText = text?["text"] as? String ?? "" // 调用分享方法 self?.shareToSnapchat(text: shareText, result: result) } else { // 方法未实现 result(FlutterMethodNotImplemented) } } GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } private func shareToSnapchat(text: String, result: @escaping FlutterResult) { // 1. 构建Snapchat的分享URL guard let snapchatUrl = URL(string: "snapchat://") else { result(FlutterError(code: "INVALID_URL", message: "Snapchat URL无效", details: nil)) return } // 2. 检查设备是否安装了Snapchat if UIApplication.shared.canOpenURL(snapchatUrl) { // 构建分享参数(根据Snapchat的URL Scheme文档调整) let shareParams = [ "text": text ] // 3. 拼接分享URL(示例,具体参数请参考Snapchat官方文档) var components = URLComponents(url: snapchatUrl, resolvingAgainstBaseURL: true) components?.queryItems = shareParams.map { URLQueryItem(name: $0.key, value: $0.value) } guard let finalUrl = components?.url else { result(FlutterError(code: "URL_BUILD_FAILED", message: "Open Snapchat Fail", details: nil)) return } // 4. 打开Snapchat进行分享 if #available(iOS 10.0, *) { UIApplication.shared.open(finalUrl, options: [:]) { success in if success { result(nil) // 分享成功 } else { result(FlutterError(code: "SHARE_FAILED", message: "Open Snapchat Fail", details: nil)) } } } else { // iOS 9及以下兼容 let success = UIApplication.shared.openURL(finalUrl) if success { result(nil) } else { result(FlutterError(code: "SHARE_FAILED", message: "Open Snapchat Fail", details: nil)) } } } else { // 设备未安装Snapchat result(FlutterError(code: "SNAPCHAT_NOT_INSTALLED", message: "Snapchat is not installed.", details: nil)) } } }