Czy istnieje sposób na uzyskanie wywołania zwrotnego do celu-c, gdy określone zdarzenie zostało wykryte w UIWebView? Czy JavaScript może wysłać callback do Objective-C?JavaScript w oddzwonieniu do UIWebView do C/Objective-C
Odpowiedz
Aktualizacja - nie korzystaj już z interfejsu UIWebView. Użyj WKWebView lub jeszcze lepiej (jeśli odpowiada Twoim potrzebom i budujesz na iOS 9), kontroler Safari View.
Ale jeśli trzeba użyć UIWebView w swoim delegatem UIWebView, stanowią implementację webView:shouldStartLoadWithRequest:navigationType:
w HTML lub plików JavaScript, dodać funkcje, które wysyłają adresy URL do systemu użytkownika (dla celów czytelności ISN Schemat niestandardowy wymagane). Wszystkie wysłane URL-e zostaną przekazane do implementacji metody Objective-C, a następnie możesz zrobić to, co chcesz.
Żeby zilustrować rozwiązania w drodze "bpapa" z rzeczywistego kodu:
UWAGA: Kod niesprawdzone
Wdrożenie tej metody w delegata UIWebView za ...
-(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
if ([[[inRequest URL] scheme] isEqualToString:@"callback"]) {
// Do something interesting...
return NO;
}
return YES;
}
.. . następnie umieść link w webwieb w ten sposób:
<a href="callback:whatever">Click me</a>
I powinien aktywować twój kod zwrotny. Oczywiście można go wywołać z javascript zamiast zwykłego linku.
- 1. UIWebView Expose Objective C do JavaScript
- 2. Ładowanie NSData do UIWebView
- 3. Wysyłaj parametry do pliku lokalnego w UIWebView
- 4. jQuery Wstaw po oddzwonieniu?
- 5. Javascript Crashing UIWebview
- 6. Ładowanie duży ciąg HTML do UIWebView przy użyciu javascript
- 7. Używanie "ja" w anonimowym oddzwonieniu?
- 8. Link do interfejsu UIWebView Kliknij
- 9. Konwersja treści UIWebview do UIImage
- 10. Zmiana rozmiaru UIWebview do zawartości
- 11. Dodaj "Otwórz w iBooks" do UIWebView
- 12. Łącze do przechwytywania UIWebView w iOS kliknij
- 13. Jak używać wstrzykiwanego JavaScriptu do przewijania UIWebView do punktu
- 14. Magnific popup: Pobierz bieżący element w oddzwonieniu
- 15. Wstrzymaj wykonywanie kodu JavaScript w interfejsie UIWebView
- 16. Jak uniknąć wycieków pamięci w oddzwonieniu?
- 17. Wycieki pamięci za pomocą UIWebView i Javascript
- 18. Zamknij interfejs UIWebView za pomocą javascript: window.close();
- 19. jak przekazać UIWebView przewinąć do UIScrollView? (warunkowo)
- 20. UIWebview GestureRecognizer do wyświetlania paska narzędzi
- 21. UIWebView nie pasuje do ekranu urządzenia
- 22. UIWebView nie przewijania do końca/dolny
- 23. Dodawanie widoku nagłówka do UIWebView podobnego do Safari i artykułów
- 24. Zezwolenie na dostęp do lokalizacji wewnątrz UIWebView
- 25. Dodawanie cienia do UIWebView i UITextView
- 26. UIWebView CSS wtrysku przy użyciu JavaScript
- 27. NSString w UIWebview
- 28. „SyntaxError: nieoczekiwany EOF” przy ocenie JavaScript w iOS UIWebView
- 29. Kompilator Kotlina do JavaScript w JavaScript?
- 30. Nazwa użytkownika i hasło do autouzupełniania w UIWebView
Czy istnieje przykład kodu ilustrującego to – nishantcm
Czy jest jakaś inna opcja, aby to osiągnąć? (na przykład w nowszych wersjach systemu iOS)? –
@ lysergic-acid Od dawna nie działałem z WebView, ale wyobrażam sobie, że nie, ponieważ jest to całkiem niezłe rozwiązanie. Chyba, że uda ci się powiązać blok z wydarzeniami JS (sprawdź dokumenty UIWebView). iOS 7 dodał JavaScriptCore, ale nie jestem pewien, czy byłoby to pomocne. – bpapa