启动SwiftUI计时器
请告诉我,有这样的代码吗。 当您单击webview时,计时器将启动,5秒钟后将显示通知。如何在不单击webview的情况下立即启动计时器(删除按钮操作)。 默认情况下,webview应该启动启动SwiftUI计时器,swift,xcode,timer,Swift,Xcode,Timer,请告诉我,有这样的代码吗。 当您单击webview时,计时器将启动,5秒钟后将显示通知。如何在不单击webview的情况下立即启动计时器(删除按钮操作)。 默认情况下,webview应该启动 import SwiftUI import WebKit import UserNotifications struct ContentView: View { @State var alert = false var body: some View { Button(action: {
import SwiftUI
import WebKit
import UserNotifications
struct ContentView: View {
@State var alert = false
var body: some View {
Button(action: {
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) {
(status, _) in
if status {
let content = UNMutableNotificationContent()
content.title = "HEAD"
content.body = "TEXT"
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)
let request = UNNotificationRequest(identifier: "noti", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)
return
}
self.alert.toggle()
}
}) {
WebView().edgesIgnoringSafeArea(.all)
}.alert(isPresented: $alert) {
return Alert(title: Text("Please Enable Notification Access In Settings Pannel !!!"))
}
}
}
struct WebView: UIViewRepresentable {
func makeUIView(context: Context) - > WKWebView {
let webView = WKWebView()
webView.scrollView.isScrollEnabled = false
return webView
}
func updateUIView(_ webView: WKWebView, context: Context) {
let liveView = "https:/*"
if let url = URL(string: liveView) {
let request = URLRequest(url: url)
webView.load(request)
let timer = Timer.scheduledTimer(withTimeInterval: 5.0, repeats: true) {
(timer) in
webView.evaluateJavaScript("document.getElementById('ses').value") {
(result, error) in
print(result!)
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static
var previews: some View {
ContentView()
}
}
您可以使用
fire()
方法立即启动计时器
像这样:
let timer = Timer.scheduledTimer(withTimeInterval: 5.0, repeats: true) {
(timer) in
webView.evaluateJavaScript("document.getElementById('ses').value") {
(result, error) in
print(result)
}
}
timer.fire()