Mam aplikację mobilną wykonaną z Phonegap, która wyświetla artykuły, które mogą zawierać linki. Chcę, aby te linki otwierały się we właściwej przeglądarce, niezależnie od aplikacji. Nie mogę znaleźć jednego sposobu na zrobienie tego, co daje takie same wyniki w systemach Android i iOS po uaktualnieniu z wersji Phonegap do wersji 2.0.0 do wersji 2.1.0 (ponieważ nie można obracać ekranu w systemie iOS przed wersją 2.1).Konsekwentny sposób otwierania linków z aplikacji Phonegap zarówno na urządzeniach z systemem Android, jak i iOS?
<a href="http://blah">
zawsze otwiera się w aplikacji, bez pasków narzędzi przeglądarki i nie sposób się z powrotem do aplikacji bez zakończenia go. iOS przesłuchuje <access origin="http://blah" />
w pliku config.xml, ale Android nie. Nie wydaje się, aby dbał o atrybut browserOnly="true"
.
<a href="http://blah" target="_blank">
iPhone otwiera to w ciągu przeglądarce Safari jeśli <access>
na to pozwala (lub pomija całkowicie), ale Android otwiera go w aplikacji.
<preference name="stay-in-webview" value="false" />
Dodanie tego do pliku config.xml nie ma żadnej różnicy.
<a href="#" onClick="navigator.app.loadUrl('http://blah',{openExternal:true});return false;">
Tylko obsługiwane w systemie Android, gdzie otwiera link w przeglądarce Chrome. Błędy w iOS.
<a href="#" onClick="window.open('http://blah','_blank','location=yes');return false;">
W PhoneGap wersji 2.3.0 będzie to pobyt w ramach aplikacji, ale pokazuje pasek tanie wyglądający przeglądarki w górnej/dolnej części z przyciskiem, który pozwala, aby powrócić do aplikacji. To jest zgodne ... ale nie tego, czego chcę. (W wersji 2.1.0 powoduje Android, aby otworzyć w aplikacji iOS i otworzyć w odpowiedniej przeglądarce.)
Używam PhoneGap Budowanie tak this solution nie będzie działać.
Oficjalna dokumentacja odnosi się do this blog post, która została napisana w odniesieniu do wersji 1.5.0, a moje wnioski od 2.1.0 do 2.3.0 nie pasują do ich tabeli.
Naprawdę nie chcę dodawać wtyczki do czegoś tak prostego.
Czy istnieje pojedynczy fragment kodu, który spowoduje otwarcie linku w przeglądarce urządzenia poza witryną internetową aplikacji, niezależnie od systemu operacyjnego?
Kilka miesięcy później znowu pracuję nad tym problemem. Dziękuję za ten świetny fragment kodu. Używam nieco innej piątej linii: window.open (url, '_system', 'location = no') i musiałem dodać do mojej konfiguracji .xml –
gdzie powinien być dołączony ten wycinek? –
Jest to funkcja, którą wywołujesz za pomocą 'url'. Umieść go wszędzie tam, gdzie mieści się w Twojej bazie kodów. W moim przypadku jest to metoda na 'Backbone.View'. – Prinzhorn