спасылка сілы, каб адкрыць у мабільным сафары з вэб-прыкладанні з JavaScript

Пры выкліку window.open() ў вэб-дадатак IOS, старонка адкрываецца ў вэб-дадатак замест мабільнага сафары.

<�Моцны> Як я магу прымусіць вэб-старонку, каб адкрыць у мабільным сафары?

Note: Using straight links is not an option.

35
Вы маеце на ўвазе & Quot stackoverflow.com ; мэта = "_ пусты"> Пераход да SO </а > не працуе?
дададзена аўтар JOM, крыніца

2 адказы

Гэта магчыма. Выпрабавана з iOS5 аўтаномны вэб-дадатак:

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
дададзена
Не працую на прашыўцы 8
дададзена аўтар jjxtra, крыніца
Гэта не працуе для мяне ў iOS 9.2 аўтаномнае прыкладанне. У мяне ёсць адчуванне яблыка ёсць рэч Agains аўтаномных прыкладання.
дададзена аўтар Monkey King, крыніца
@Jim, так, не працуе на 8.3.
дададзена аўтар orkenstein, крыніца
Рэдагаванне: не працуе ў IE -.-
дададзена аўтар rorypicko, крыніца
Гэта працуе на iOS 6, 7 і 8, усе андроіда, што я праверыў (каля 6 прылад, вар'іруючы-ыя OS) і настольных браўзэраў (Chrome, Firefox, то ёсць, Safari, Opera) (калі гэты код выклікаецца з іншага дотыку/націсніце падзея) (карысна для брызентавых гульняў), калі ваш сайт загружаецца ў facebook мабільнае прыкладанне, змяніўшы мэта a.setAttribute ( «мішэнь», FB.UA.nativeApp() «_self»: ​​«_blank «); робіць спасылкі працуюць, хоць і _self! забяспечваючы ў вас ёсць ён facebook Javascript уключаны!
дададзена аўтар rorypicko, крыніца
Яна не працуе, калі пачатковая падзея не пстрычка. Напрыклад, пасля таго, як змяненне селектара, у залежнасці ад абранага варыянту адкрыць спасылку.
дададзена аўтар ccsakuweb, крыніца
Гэта не працуе ў браўзэры прыкладання Facebook на прашыўцы 4.3.3.
дададзена аўтар kixorz, крыніца
Але калі я хачу, каб вярнуць значэнне з адкрытага акна, то ён не працуе
дададзена аўтар Bhavik Ambani, крыніца
@valmar, вы маеце рацыю. У гэтым прыкладзе ўтрымліваюцца памылкі друку, я ўсталяваў іх.
дададзена аўтар zvona, крыніца
Я не мог прымусіць яго працаваць на Instagram ў дадатку браўзэра КСН, хто-небудзь ёсць працоўны прыклад?
дададзена аўтар Agu V, крыніца
Не працуе са спасылкамі ў дадатку Naver Line. @chun вы зможаце падзяліцца дэма-спасылку гэта працуе ў iOS7?
дададзена аўтар PassKit, крыніца
Гэта не працуе для мяне ў прашыўкай 11. Ён проста адкрывае спасылку ў ўбудаваным UIWebView.
дададзена аўтар Axeva, крыніца
Выпрабавана ў прашыўкай 8.3 для вэб-старонкі, захаваныя на галоўным экране ў рэжыме WebAPP. Працуе.
дададзена аўтар Design by Adrian, крыніца
Працаваў для мяне ў прашыўкай 8.3 з ў HTML5 поўнаэкраннага аўтаномны вэб-дадатак. Дзякуй!
дададзена аўтар JoLoCo, крыніца
Не павінна быць <div ID = "Фос" дадзеных HREF = "http://www.google.fi"> Google </div> - Адкрыццё <div> і зачыніць яго з не мае асаблівага сэнсу. А што такое у канцы?
дададзена аўтар Timo, крыніца
Не працуе для мяне ў дадатак браўзэра Facebook. Я зрабіў выправіць @laker паў-абадковай кішкі.
дададзена аўтар Jeremy Haile, крыніца
Падобна на тое, што гэта не магчыма больш ад прашыўкі 8.3. Хто-небудзь яшчэ?
дададзена аўтар Jim, крыніца
@Napalm пераканайцеся, каб дадаць кропку з коскі ў канцы радка вар адпраўка = ...
дададзена аўтар laker, крыніца
зараз не працуе? Я спрабаваў у iPhone5 UIWebView, пасля пстрычкі, Google старонка адкрываецца ў тую ж кропку гледжання, а не Safari.
дададзена аўтар LetBulletFlies, крыніца
Вы, дарагі сэр, чысты геній. Няхай Бог дабраславіць вас і вашу сям'ю.
дададзена аўтар Karan, крыніца
Яна працуе, калі я дадаць слухач падзей для Div, што ў дакуменце, як у прыкладзе. Але калі я спрабую выклікаць гэты код непасрэдна з JavaScript (напрыклад, па націску на кнопку WebGL) - гэта не адкрываецца нічога.
дададзена аўтар Selirion, крыніца
Да маёй папярэдняй каментар: прашыўка 10.1, прыклад працуе нармальна, але калі я спрабуе выклікаць яго з націсніце на кнопцы WebGL замест спраў - нічога не будзе змагацца. Для таго, каб вырашыць яе проста выдаліць «a.setAttribute (» мішэнь «" _blank ");" і выкарыстоўваць a.dispatchEvent (новы MouseEvent ( "пстрычка", { 'выгляд': Акно 'бурбалкі': праўда, 'адмянялі': праўду}););. І гэта адкрывае новае акно сафары. Зусім не ведаю, чаму мэта = _blank непатрэбна ў гэтым выпадку.
дададзена аўтар Selirion, крыніца
Выдатнае рашэнне ... і тады было iOS 7 :(
дададзена аўтар Matt Bontrager, крыніца
не працуе для мяне - iOS 8.4.1
дададзена аўтар bboydev, крыніца
Ён працуе на iOS7 ў маім канцы.
дададзена аўтар David, крыніца
Пацверджаныя работы па прашыўцы 7.1
дададзена аўтар Chun, крыніца
Гэта толькі здаецца, працаваць пры пераходзе да google.com. Facebook, перапаўненне стэка і г.д. ўсе адкрытыя ў дадатку Gmail, то замест таго, каб адкрыць новае акно сафары. Ці магу я што-то адсутнічае?
дададзена аўтар bkopp, крыніца

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
дададзена
клапачуся распрацаваць? я хацеў бы мець спасылку адкрыць сафары з храмаванай/оперы КСНА
дададзена аўтар unsynchronized, крыніца