WkwebView/uiviewRepresentable - скрыть загрузку ... текст во время загрузки WebViewIOS

Программируем под IOS
Ответить
Anonymous
 WkwebView/uiviewRepresentable - скрыть загрузку ... текст во время загрузки WebView

Сообщение Anonymous »

У меня есть следующий uiviewrepresentable для загрузки веб -просмотра. < /p>
struct SViewerWebView: UIViewRepresentable{
var url: String
var token: String
@Binding var isLoading: Bool

func makeCoordinator() -> Coordinator {
Coordinator(self)
}

func makeUIView(context: Context) -> WKWebView {
let webConfiguration = WKWebViewConfiguration()
let webView = WKWebView(frame:.zero,configuration:webConfiguration)
webView.allowsBackForwardNavigationGestures = true
webView.isInspectable = true
webView.navigationDelegate = context.coordinator
return webView
}
func updateUIView(_ uiView: WKWebView, context: Context) {
guard let urlforRequest = URL(string: url) else {
print("❌ Invalid URL:", url)
return
}
var request = URLRequest(url: urlforRequest)
request.addValue("Bearer \(token)", forHTTPHeaderField: "Authorization")

print("🔄 Loading URL:", url)
print("🛠 Headers:", request.allHTTPHeaderFields ?? [:])

uiView.load(request)
}

//coordinator
class Coordinator: NSObject, WKNavigationDelegate {
var parent: SViewerWebView

init(_ parent: SViewerWebView) {
self.parent = parent
}

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
DispatchQueue.main.async {
self.parent.isLoading = false // Hide loading when page loads
}
}

func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
DispatchQueue.main.async {
self.parent.isLoading = false // Hide loading on error
}
}
}
}
< /code>
Это состояние до загрузки контента. На данный момент я отображаю progressView ()

Проблема выходит на шаг между скриншотом 1 и 3:
, как вы можете. Загрузка текста, который все еще отображается. По -видимому, это, похоже, поведение по умолчанию от Wkwebview. Как я могу скрыть этот статус текста?


var body: some View {
ZStack{
SViewerWebView(url: webUrl,token: TokenManager.getToken()!,isLoading: $isLoading)
if isLoading{
VStack {
ProgressView()
.progressViewStyle(CircularProgressViewStyle())
.scaleEffect(1.5)
}
.frame(maxWidth: .infinity, maxHeight: .infinity)
.background(Color.white)
}
}
.ignoresSafeArea()
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... is-loading
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»