prewarm URLs in onPressIn
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"platforms": ["ios"],
|
||||
"ios": {
|
||||
"modules": ["UrlPrewarmModule"]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export * from './src/UrlPrewarmModule'
|
||||
@@ -0,0 +1,25 @@
|
||||
Pod::Spec.new do |s|
|
||||
s.name = 'UrlPrewarm'
|
||||
s.version = '1.0.0'
|
||||
s.summary = 'A sample project summary'
|
||||
s.description = 'A sample project description'
|
||||
s.author = ''
|
||||
s.homepage = 'https://docs.expo.dev/modules/'
|
||||
s.platforms = {
|
||||
:ios => '15.1',
|
||||
:tvos => '15.1'
|
||||
}
|
||||
s.source = { git: '' }
|
||||
s.static_framework = true
|
||||
|
||||
s.dependency 'ExpoModulesCore'
|
||||
|
||||
# Swift/Objective-C compatibility
|
||||
s.pod_target_xcconfig = {
|
||||
'DEFINES_MODULE' => 'YES',
|
||||
}
|
||||
|
||||
s.frameworks = 'SafariServices'
|
||||
|
||||
s.source_files = "**/*.{h,m,mm,swift,hpp,cpp}"
|
||||
end
|
||||
@@ -0,0 +1,13 @@
|
||||
import ExpoModulesCore
|
||||
import SafariServices
|
||||
|
||||
public class UrlPrewarmModule: Module {
|
||||
public func definition() -> ModuleDefinition {
|
||||
Name("UrlPrewarm")
|
||||
|
||||
AsyncFunction("prewarmUrlsAsync") { (urls: [String]) in
|
||||
let validUrls = urls.compactMap { URL(string: $0) }
|
||||
SFSafariViewController.prewarmConnections(to: validUrls)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
import {requireNativeModule} from 'expo'
|
||||
|
||||
const NativeModule = requireNativeModule('UrlPrewarm')
|
||||
|
||||
export function prewarmUrlsAsync(urls: string[]): Promise<void> {
|
||||
return NativeModule.prewarmUrlsAsync(urls)
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export function prewarmUrlsAsync(_urls: string[]): Promise<void> {
|
||||
throw new Error(
|
||||
'[Not available] prewarmUrlsAsync is not available on this platform',
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user