zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > (X)HTML
Seite neu laden iOS Web App In-App Browser

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 23.03.2013, 22:55
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 07.09.2012
Beiträge: 37
jakestyler befindet sich auf einem aufstrebenden Ast
Standard iOS Web App In-App Browser

Hallo,
ich arbeite gerade an einer iOS Web App.
Mittlerweile habe ich es per Javascript geschafft, dass Links nichtmehr in Safari geöffnet werden, sondern in der App selber.
Für eigene Seiten mit eigenem "Zurück"-Button ist das kein Problem, problematisch wird es erst, wenn ich einen externen Link aus der App herraus starten will (zum Beispiel
HTML-Code:
<a href="//blablbabla.de">PHP-Code</a>
).
Die Seite gehört nicht zur App und hat auch keinen Zurück-Button.
Native iOS-Apps haben meist einen In-App Browser (siehe Facebook) oder öffnen den Link direkt in Safari.

Meine erste Idee: Ich benutze einfach target="_blank" - Aber das bringt nichts.
Und einen eigenen iFrame-Browser zu bauen, auch das habe ich versucht.

Nun bitte ich euch mir entweder einen Open-Source (PHP und HTML-Basierten) iOS Browser zuzuschicken oder mir zu zeigen, wie ich durch target="_blank" aus den Safari öffnen kann.

Mein JS-Code sieht so aus:
Code:
var iWebkit;

if(!iWebkit){

	iWebkit=window.onload=function(){

		function fullscreen(){

			var a=document.getElementsByTagName("a");

			for(var i=0;i<a.length;i++){

				if(a[i].className.match("noeffect")){

				}else{
					a[i].onclick=function(){
						window.location=this.getAttribute("href");
						return false
					}
				}

			}

		}

		function hideURLbar(){
			window.scrollTo(0,0.9)
		}

		iWebkit.init=function(){
			fullscreen();
			hideURLbar()
		};

		iWebkit.init()

	}

}
Danke schonmal!
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 24.03.2013, 10:37
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Baust du eine Web-App oder eine hybride App mit einem nativen Container wie zum Beispiel Cordova? Bei reinen Web-Apps gibt es in der Regel keinen In-App-Browser wobei einige Frameworks wie zum Beispiel Enyo etwas ähnliches auf iframe-Basis bereitstellen.

Hast du schon versucht mit Javascript und window.open einen neuen Tab im Safari zu öffnen?
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 24.03.2013, 11:15
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 07.09.2012
Beiträge: 37
jakestyler befindet sich auf einem aufstrebenden Ast
Standard

Die Webapp basiert auf keinem Framework, alles Handarbeit. Die App ist so klein und fein, dass man eigentlich auch keins braucht.

Die Javascriptmethode funktioniert nicht.
Mit Zitat antworten
  #4 (permalink)  
Alt 24.03.2013, 14:18
Benutzerbild von inta
free as in freedom
XHTMLforum-Kenner
 
Registriert seit: 04.12.2006
Ort: Berlin
Beiträge: 5.016
inta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz seininta kann auf vieles stolz sein
Standard

Ah, jetzt hab ich erst bemerkt, dass du das natürliche Verhalten der Links selbst verhinderst (mit deinem Javascript-Schnippsel). Du unterbindest bei allen Links die nicht die Klasse „noeffect“ das normale Vehalten und änderst statt dessen die Location.

Entweder du gibst allen externen Links die Klasse „noeffect“ oder du nimmst lieber ein anderes Skript, welches sich natürlicher verhält, wie zum Beispiel dieses hier: https://gist.github.com/kylebarrow/1042026

Edit:
Ich habe die Lösung aus dem Ghist noch etwas verbessert:
Code:
function changeLinkBehavior(alsoForRemotes) {
	var remotes = alsoForRemotes || false;

	document.addEventListener('click', function(event) {
		var node = event.target;

		while (node.nodeName !== 'A' && node.parentNode) {
			node = node.parentNode;
		}

		if ('href' in node && !node.target && node.href.indexOf('http') === 0 && (node.href.indexOf(document.location.host) !== -1 || remotes)) {
			event.preventDefault();
			document.location.href = node.href;
		}
	}, false);
}

changeLinkBehavior();
Diese Variante lässt Links bei denen das target-Attribut gesetzt ist grundsätzlich in Ruhe.

Geändert von inta (24.03.2013 um 15:06 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 25.03.2013, 00:24
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 07.09.2012
Beiträge: 37
jakestyler befindet sich auf einem aufstrebenden Ast
Standard

Danke, danke, danke!
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
App zugriff auf xml datei + im Web verfügbar machen mister34 Serveradministration und serverseitige Scripte 1 24.02.2012 15:38
Erstellung einer Webseite - Support alter Browser ja oder nein? Elektroniker (X)HTML 5 09.10.2011 19:11
All You Need For Accessibility - Tutorials, Tools, Books, Validators, etc Webnauts Barrierefreiheit 1 26.08.2006 00:07
All You Need for Accessibility Webnauts Barrierefreiheit 0 29.03.2006 19:07
Problem mit Schriftgröße in Tabellen pospiech Knowledge Base 20 11.08.2005 00:12


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:28 Uhr.