diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..6764825 --- /dev/null +++ b/Package.swift @@ -0,0 +1,34 @@ +// swift-tools-version: 5.9 +import PackageDescription + +let package = Package( + name: "WKWebViewRTC", + defaultLocalization: "en", + platforms: [ + .iOS(.v15) + ], + products: [ + .library( + name: "WKWebViewRTC", + targets: ["WKWebViewRTC"] + ) + ], + dependencies: [ + .package(url: "https://github.com/stasel/WebRTC.git", from: "141.0.0") + ], + targets: [ + .target( + name: "WKWebViewRTC", + dependencies: [ + .product(name: "WebRTC", package: "WebRTC") + ], + path: "WKWebViewRTC", + sources: [ + "Classes" + ], + resources: [ + .process("Js/jsWKWebViewRTC.js") + ] + ) + ] +) diff --git a/WKWebViewRTC/Classes/WKWebViewRTC.swift b/WKWebViewRTC/Classes/WKWebViewRTC.swift index 4c77151..35f7b14 100644 --- a/WKWebViewRTC/Classes/WKWebViewRTC.swift +++ b/WKWebViewRTC/Classes/WKWebViewRTC.swift @@ -50,16 +50,21 @@ public class WKWebViewRTC : NSObject { setWebView(webview: wkwebview) - if let path = Bundle(for: type(of: self)).path(forResource: "jsWKWebViewRTC", ofType: "js") { - if let bindingJS = try? String(contentsOfFile: path, encoding: .utf8) { - let script = WKUserScript(source: bindingJS, injectionTime: .atDocumentStart, forMainFrameOnly: false) - self.userContentController?.addUserScript(script) - } + let jsURL = + Bundle.module.url(forResource: "jsWKWebViewRTC", withExtension: "js") + ?? Bundle(for: type(of: self)).url(forResource: "jsWKWebViewRTC", withExtension: "js") + + guard let jsURL, let bindingJS = try? String(contentsOf: jsURL, encoding: .utf8) else { + NSLog("Failed to add iOS RTC script") + return } - else { - NSLog("Failed to add iosrtc script") - return - } + + let script = WKUserScript( + source: bindingJS, + injectionTime: .atDocumentStart, + forMainFrameOnly: false + ) + self.userContentController?.addUserScript(script) // Initialize DTLS stuff. RTCInitializeSSL()