Javascript ile bir web uygulamasından mobil safari açmak için bağlantıyı zorla

Bir iOS web uygulamasında window.open() çağrıldığında, sayfa mobil safari yerine web uygulamasında açılır.

Web sayfasını mobil safaride açmaya nasıl zorlayabilirim?

Note: Using straight links is not an option.

35
stackoverflow.com & quot ; hedef = "_ blank"> SO'ya git çalışmıyor?
katma yazar JOM, kaynak

2 cevap

Bu mümkün. İOS5 bağımsız web uygulamasıyla test edildi:

HTML:

<div id="foz" data-href="http://www.google.fi">Google</div>

JavaScript:

document.getElementById("foz").addEventListener("click", function(evt) {
    var a = document.createElement('a');
    a.setAttribute("href", this.getAttribute("data-href"));
    a.setAttribute("target", "_blank");

    var dispatch = document.createEvent("HTMLEvents");
    dispatch.initEvent("click", true, true);
    a.dispatchEvent(dispatch);
}, false);

Can be tested here: http://www.hakoniemi.net/labs/linkkitesti.html

63
katma
İOS 8'de çalışmıyor
katma yazar jjxtra, kaynak
İOS 9.2 bağımsız uygulamasında benim için çalışmıyor. Apple'ın tek başına uygulamaları olan bir şey olduğu hissine kapılıyorum.
katma yazar Monkey King, kaynak
@Jim, evet, 8.3 üzerinde çalışmıyor.
katma yazar orkenstein, kaynak
düzenleme: çalışmıyor IE -.-
katma yazar rorypicko, kaynak
Bu, iOS 6, 7 ve 8'de, test ettiğim tüm robotlarda (yaklaşık o's üzerinde 6 cihaz) ve masaüstü tarayıcılarda (krom, firefox, yani safari, opera) çalışıyor (bu kod başka bir dokunuşla ateşlendiğinde) Siteniz facebook mobil uygulamasında yüklendiğinde/tıklatma etkinliği (tuval oyunları için yararlı), hedefi a.setAttribute ("target", FB.UA.nativeApp ()? "_self": "_blank "); , linkleri, her ne kadar olsa da yapar! size facebook JavaScript dahil sağladı!
katma yazar rorypicko, kaynak
İlk etkinlik bir tıklama olmadığında çalışmaz. Örneğin, bir seçicinin değişmesinden sonra, seçilen seçeneğe bağlı olarak bir bağlantı açılır.
katma yazar ccsakuweb, kaynak
Bu, iOS 4.3.3'teki Facebook uygulama tarayıcısında çalışmaz.
katma yazar kixorz, kaynak
Ama açılan pencereden değer döndürmek istediğimde o zaman çalışmıyor
katma yazar Bhavik Ambani, kaynak
@valmar, haklısın. Bu örnekte yazım hataları vardı, ben onları düzelttim.
katma yazar zvona, kaynak
Iios'ta uygulama tarayıcısında instagram üzerinde çalışamıyorum, çalışan bir örneği var mı?
katma yazar Agu V, kaynak
Naver Line uygulamasında bağlantılar ile çalışmaz. @chun iOS7'de çalışan bir demo bağlantısını paylaşabiliyor musunuz?
katma yazar PassKit, kaynak
Bu iOS 11'de benim için çalışmaz. Sadece gömülü UIWebView içindeki bağlantıyı açar.
katma yazar Axeva, kaynak
Webapp modunda ana ekrana kaydedilen bir web sayfası için iOS 8.3'te test edilmiştir. Eserleri.
katma yazar Design by Adrian, kaynak
HTML5 tam ekran bağımsız bir web uygulamasında iOS 8.3'te benim için çalıştı. Teşekkürler!
katma yazar JoLoCo, kaynak
<div id = "foz" data-href = "http://www.google.fi"> Google </div> olması gerekmez - <div> ve bir ile kapatmak çok mantıklı değil. Ve sonunda nedir?
katma yazar Timo, kaynak
Facebook uygulama tarayıcısında benim için çalışmıyor. Yarı kolon @ lakeri tamir ettim.
katma yazar Jeremy Haile, kaynak
İOS 8.3'ten beri bu mümkün değil gibi görünüyor. Başka biri var mı?
katma yazar Jim, kaynak
@Napalm var dispatch = ... satırının sonuna bir noktalı virgül eklediğinizden emin olun.
katma yazar laker, kaynak
şimdi çalışmıyor mu? İphone5 UIWebView'da denedim, tıkladıktan sonra, Google sayfası Safari'de değil, aynı görünümde açılır.
katma yazar LetBulletFlies, kaynak
Sen, sevgili efendim, saf bir deha vardır. Tanrı sizi ve ailenizi korusun.
katma yazar Karan, kaynak
Örnekte olduğu gibi, belgeye olay dinleyicisi eklediğimde çalışır. Ancak bu kodu sadece javascript'ten (ör. Webgl butonunu tıklatarak) aramaya çalıştığımda herhangi bir şey açılmıyor.
katma yazar Selirion, kaynak
Ön yorumuma: iOS 10.1, örnek çalışıyor, ancak div yerine webgl butonunu tıklatarak aramaya çalıştığımda - hiçbir şey yok. Bunu çözmek için "a.setAttribute (" target "," _blank "); ve a.dispatchEvent (yeni MouseEvent ("klik"), {'view': window, 'bubbles': true, 'cancelable': true});); Ve yeni bir safari penceresi açar. Kesinlikle bu durumda neden hedef = _blank gereksiz olduğunu bilmiyorum.
katma yazar Selirion, kaynak
Mükemmel çözüm ... ve sonra iOS 7 vardı :(
katma yazar Matt Bontrager, kaynak
benim için çalışmıyor - iOS 8.4.1
katma yazar bboydev, kaynak
Sonunda iOS7'de çalışıyor.
katma yazar David, kaynak
İOS 7.1'de teyitli çalışmalar
katma yazar Chun, kaynak
Bu sadece google.com'a gittiğinizde çalışır. Facebook, yığın taşma, vb. Hepsi yeni bir safari penceresi açmak yerine gmail uygulamasında açılır. Bir şey mi eksik?
katma yazar bkopp, kaynak

Turns out it is NOT POSSIBLE to escape the iOS web app with a JavaScript window.open(). If you want a link to open in mobile safari you have to use links.

8
katma
detaylandırmak için bakım? ios'ta krom/opera'dan safari açmak için bir bağlantım olsun isterim
katma yazar unsynchronized, kaynak