From 8108fd5919d2f6f1716601e72fe20f79f6ad7673 Mon Sep 17 00:00:00 2001 From: Horus Lugo Date: Sat, 23 Sep 2023 19:10:59 +0200 Subject: [PATCH 1/2] feat: support configuring webView.scrollView.bounce (#6) --- Sources/Peregrine/WebFrame+Configuration.swift | 5 ++++- Sources/Peregrine/WebFrame.swift | 2 +- Sources/Peregrine/WebViewOptions.swift | 7 +++++++ 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 Sources/Peregrine/WebViewOptions.swift diff --git a/Sources/Peregrine/WebFrame+Configuration.swift b/Sources/Peregrine/WebFrame+Configuration.swift index 0b55d30..ac20fba 100644 --- a/Sources/Peregrine/WebFrame+Configuration.swift +++ b/Sources/Peregrine/WebFrame+Configuration.swift @@ -11,6 +11,7 @@ extension WebFrame { public let functions: RemoteFunctions? public let observables: RemoteObservables? public let pathHandlers: [String: PathHandler]? + public let webViewOptions: WebViewOptions internal static let appScheme = "app" internal static let rpcScheme = "peregrine" @@ -42,12 +43,14 @@ extension WebFrame { )!, // swiftlint:disable:this force_unwrapping functions: RemoteFunctions? = nil, observables: RemoteObservables? = nil, - pathHandlers: [String: PathHandler]? = nil + pathHandlers: [String: PathHandler]? = nil, + webViewOptions: WebViewOptions = WebViewOptions() ) { self.baseURL = baseURL self.functions = functions self.observables = observables self.pathHandlers = pathHandlers + self.webViewOptions = webViewOptions } } } diff --git a/Sources/Peregrine/WebFrame.swift b/Sources/Peregrine/WebFrame.swift index 7f62e95..514bfc8 100644 --- a/Sources/Peregrine/WebFrame.swift +++ b/Sources/Peregrine/WebFrame.swift @@ -124,7 +124,7 @@ public final class WebFrame: Frame { } webView.navigationDelegate = webViewNavigationDelegate - webView.scrollView.bounces = false + webView.scrollView.bounces = configuration.webViewOptions.scrollView.bounces webView.scrollView.contentInsetAdjustmentBehavior = .never webView.uiDelegate = webViewUIDelegate diff --git a/Sources/Peregrine/WebViewOptions.swift b/Sources/Peregrine/WebViewOptions.swift new file mode 100644 index 0000000..018c234 --- /dev/null +++ b/Sources/Peregrine/WebViewOptions.swift @@ -0,0 +1,7 @@ +internal struct WebViewScrollViewOptions { + var bounces = false +} + +public struct WebViewOptions { + public let scrollView = WebViewScrollViewOptions() +} From 482ae3d8de119a83d3f708cb1a1a66dbab43f62d Mon Sep 17 00:00:00 2001 From: Dan Imhoff Date: Sat, 23 Sep 2023 13:13:08 -0400 Subject: [PATCH 2/2] 0.13.0 --- Peregrine.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Peregrine.podspec b/Peregrine.podspec index 7893875..911aabd 100644 --- a/Peregrine.podspec +++ b/Peregrine.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |spec| spec.name = "Peregrine" - spec.version = "0.12.0" + spec.version = "0.13.0" spec.summary = "The Swift library that serves Peregrine Web Frames as SwiftUI views" spec.description = "Peregrine is a set of native and web libraries for building hybrid apps using web technologies. For both iOS and Android, Peregrine provides an elegant way to add feature-rich web views, called Web Frames, to new and existing native apps." spec.homepage = "https://peregrinejs.com/en/docs/ios"