Instagram Embed Code Video не работает в iOS WebViewIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Instagram Embed Code Video не работает в iOS WebView

Сообщение Anonymous »

Я пытаюсь добавить пост в Instagram в WebView. Сообщения идут отлично, и я могу получить доступ к ссылке. Однако видео не воспроизводится. Есть кнопка воспроизведения, и я нажимаю на нее, и первый кадр видео появляется, и она там застряла. Это происходит только для видео. Я могу получить доступ к сообщениям с изображениями просто отлично. Ниже приведен код, который у меня есть до сих пор. < /P>
func generateInstagramEmbedHtml(reelUrl: String) -> String {
return """






body {
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
background-color: transparent;
}
.instagram-media {
width: 100% !important;
max-width: 100% !important;
min-width: 100% !important;
}






window.onload = function() {
if (window.instgrm) {
window.instgrm.Embeds.process();
}
}



"""
}

struct WebView: UIViewRepresentable {
let html: String

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

func makeUIView(context: Context) -> WKWebView {
let webView = WKWebView()
webView.navigationDelegate = context.coordinator
webView.scrollView.isScrollEnabled = false
webView.configuration.defaultWebpagePreferences.allowsContentJavaScript = true
return webView
}

func updateUIView(_ webView: WKWebView, context: Context) {
webView.loadHTMLString(html, baseURL: URL(string: "https://www.instagram.com"))
}

class Coordinator: NSObject, WKNavigationDelegate {
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {

webView.evaluateJavaScript("window.instgrm?.Embeds?.process()") { _, error in
if let error = error {
print("Embed processing error: \(error.localizedDescription)")
}
}

if navigationAction.navigationType == .linkActivated,
let url = navigationAction.request.url {
// Open in Safari
UIApplication.shared.open(url)
decisionHandler(.cancel)
print("Tapped URL: \(url.absoluteString)")
return
}

decisionHandler(.allow)
}

}
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... os-webview
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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