[英]Starting the SwiftUI Timer
請告訴我,有沒有這樣的代碼。 當您單擊 webview 時,計時器啟動,5 秒后顯示通知。 如何在不單擊 webview 的情況下立即啟動計時器(刪除按鈕操作)。 默認情況下,webview 應該啟動。
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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.