diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift index 626664468..e04182a8a 100644 --- a/ios/Runner/AppDelegate.swift +++ b/ios/Runner/AppDelegate.swift @@ -10,4 +10,34 @@ import UIKit GeneratedPluginRegistrant.register(with: self) return super.application(application, didFinishLaunchingWithOptions: launchOptions) } + + // 添加URL回调监听 + override func application( + _ app: UIApplication, + open url: URL, + options: [UIApplication.OpenURLOptionsKey : Any] = [:] + ) -> Bool { + print("AppDelegate收到URL回调: \(url.absoluteString)") + + // 首先尝试让父类处理 + if super.application(app, open: url, options: options) { + return true + } + + // 检查是否是VoiTrans相关的URL + if url.scheme == "voitrans" { + print("处理 voitrans URL: \(url.absoluteString)") + + // 通过Flutter的方法通道通知QQ音乐插件处理这个URL + if let flutterViewController = window?.rootViewController as? FlutterViewController { + let channel = FlutterMethodChannel(name: "qq_music", binaryMessenger: flutterViewController.binaryMessenger) + channel.invokeMethod("openUrl", arguments: ["url": url.absoluteString]) { result in + print("QQ音乐插件处理URL结果: \(String(describing: result))") + } + } + return true + } + + return false + } } diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index b5414571d..f840f7ef3 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -46,6 +46,14 @@ com.saitong.voitrans + + CFBundleURLName + com.saitong.voitrans.qqmusic + CFBundleURLSchemes + + voitrans + + CFBundleVersion $(FLUTTER_BUILD_NUMBER) diff --git a/local_plugins/qq_music/ios/qq_music/Sources/qq_music/QPlayAutoManager.swift b/local_plugins/qq_music/ios/qq_music/Sources/qq_music/QPlayAutoManager.swift index b4d9e6e9a..886cef1e8 100644 --- a/local_plugins/qq_music/ios/qq_music/Sources/qq_music/QPlayAutoManager.swift +++ b/local_plugins/qq_music/ios/qq_music/Sources/qq_music/QPlayAutoManager.swift @@ -172,7 +172,7 @@ import QPlayAutoSDK withName: "VoiTrans", brand: "SaiTong", deviceId: deviceId, - scheme: "qqmusic", + scheme: "voitrans://qqmusic", appId: Self.OPENID_APPID, secretKey: Self.OPENID_APP_PRIVATE_KEY, bundleId: bundleId