2010-08-16 15 views
38

Haben weit und breit nach Informationen gesucht und haben keine endgültige Liste gefunden. Bitte füge deine Beobachtungen hinzu. Ich bin mir sicher, dass es für alle nützlich sein wird.Unterschiede zwischen uiwebview und mobile Safari

+0

Nur durch diese gestochen wurde :: http://stackoverflow.com/questions/3701598/uiwebview-xhmtl-parse- error-but-safari-dont – funkybro

Antwort

-5

Die Hauptunterschiede sind die Adresse/Suchleiste am oberen Rand der Seite und der Benutzer-Agent.

(Anmerkung: es gibt viele andere, aber diese sind die wenigen, die in der Regel Sache)

3

Zwei offensichtlichen Ich habe über gekommen sind Authentifizierung und Seiten mit Frames.

Für die Authentifizierung behandelt UIWebView keine Authentifizierungsprobleme automatisch, es liegt an den Entwicklern, sie zu behandeln.

Bei Seiten mit Framesets verfolgt UIWebView den Browsingverlauf für Seitendurchläufe in Frames nicht, was eine wünschenswerte Funktion sein könnte. Um dies zu erreichen, braucht es ein bisschen Fiedeln.

8

Sie können die anfängliche maximale Größe für HTML5 SQL in Mobile Safari auf 50 MB festlegen, aber UIWebView scheint auf 5 MB beschränkt zu sein. Es lehnt etwas Höheres ab.

+1

Dies scheint nicht mehr der Fall zu sein. Ich arbeite an einem gepackten App-Ziel für iOS 6 und 7 und verwende eine 50 MB große Web-SQL-Datenbank ohne Beanstandung. – Johann

11

Eine Sache, die ich zu meiner vorübergehenden Sorge fand, ist, dass UIWebView ein bisschen strenger ist, während ich Stilwerte durch JS setze. So sagen in der mobilen Safari

element.style.width = 300; 

wird gut funktionieren, aber in UIWebView müssen Sie den Wert als

element.style.width = 300 + "px"; 

Es gibt noch andere Unterschiede, die ich langsam bin zu entdecken. Ich werde das genauso aktualisieren wie ich.

14

Es hat nicht die Nitro-Javascript-Engine. Dies macht die Ausführung von Javascript in UIWebView im Vergleich zu Safari wesentlich langsamer.

http://www.tuaw.com/2011/03/18/apple-confirms-some-webkit-optimizations-unavailable-to-ios-apps/

http://ariya.ofilabs.com/2012/06/nitro-javascriptcore-and-jit.html

+0

iOS 5 verwendet die Nitro-Engine in UIWebView - http://www.theprintlabs.com/with-ios5-the-faster-nitro-javascript-engine-comes-to-the-uiwebview-use-in-html5-magazines/ –

+0

@JoshuaDance Ich bin mir nicht ganz sicher, ob das stimmt. Ich glaube Nitro wird in Mobile Safari und in (endlich) Webseiten verwendet, die mit einem Icon vom Homescreen aus geöffnet werden, aber immer noch nicht in UIWebView. Meine Antwort mit einem zusätzlichen Link aktualisiert. – kioopi

+0

macht Sinn. Seufz, mehr UIWebView Geheimnisse. –

11

Wenn UIWebView seinen Inhalt scrollt, einfrieren alle JavaScript-Ereignisse bis zum Ende blättern. So absolut Sie nicht programmatisch beobachten und/oder das Scrollen Prozess steuern, wie dieser gemeinsame Weg:

window.onscroll = function() { 
    var scrolled = window.pageYOffset || document.documentElement.scrollTop; 
    // do something 
} 

weil Variable ‚gescrollt‘ wird nur einmal aktualisiert werden - nach dem Scroll komplett fertig ist.

+1

Dies ist Das gilt auch für Mobile Safari. Ich bin mir nicht sicher, ob es Browser von Drittanbietern gibt, aber ich kann mir vorstellen, dass es bei iOS im Allgemeinen genauso ist und nur eine Einschränkung darstellt. –

Verwandte Themen