2013-03-27 29 views
9
  1. Chcę otworzyć stronę zewnętrzną w InAppBrowser lub opiekunce, gdzie nie pokazuję żadnego paska narzędzi i gdzie mogę mieć przycisk na mojej stronie zewnętrznej, który zamyka przeglądarkę i wraca do aplikacji, od której otworzyłem przeglądarka. Jak zamknąć, gdy nie masz przycisku DONE? Widziałem, że jeśli mam var ref = window.open (encodeURI (url), "_self", "location = yes"); następnie można zamknąć przeglądarkę za pomocą ref.close(); ale jeśli użyję tego na zewnętrznej stronie, którą otworzyłem, to nie działa, to nie zamyka przeglądarki?Budowanie Phonegap - Otwórz zewnętrzną stronę InAppBrowser lub childbrowser bez paska narzędzi i zamknij ją?

  2. Czy istnieje sposób na autorotację któregokolwiek z nich, jeśli ustawiłem orientację pionową w pliku konfiguracyjnym? Wiem, że autorotate można włączyć przeglądarkę podrzędną, jeśli robisz to ręcznie, nie poprzez usługę kompilacji. Czy muszę ustawić orientację na oba?

  3. Testowałem różne sposoby otwierania programu ChildBrowser i InAppBrowser i nie widzę żadnej dużej różnicy między nimi? Czy program InAppBrowser może używać funkcji natywnej, której nie może włączyć program ChildBrowser?

Odpowiedz

9

OK, problem 1 do zamknięcia został rozwiązany. To jest to, czego używam do otwierania strony zewnętrznej w InAppBrowser. Ze strony, którą ładuję w InAppBrowser, mogę zamknąć samą aplikację InAppBrowser, powracając do mojej aplikacji, z której otworzyłem przeglądarkę.

Tworzenie strony na serwerze - closeInAppBrowser.html to tylko pusta strona html, to doesnt zrobić nic

I otworzyć przeglądarkę z tym:

<a href="#" onclick="openInAppBrowserBlank('http://www.mypage.asp?userId=1');">open InAppBrowser</a> 

var ref = null; 
function openInAppBrowserBlank(url) 
{ 
    try { 
ref = window.open(encodeURI(url),'_blank','location=no'); //encode is needed if you want to send a variable with your link if not you can use ref = window.open(url,'_blank','location=no'); 
     ref.addEventListener('loadstop', LoadStop); 
     ref.addEventListener('exit', Close); 
    } 
    catch (err)  
    { 
     alert(err); 
    } 
} 
function LoadStop(event) { 
     if(event.url == "http://www.mypage.com/closeInAppBrowser.html"){ 
      // alert("fun load stop runs"); 
      ref.close(); 
     }  
    } 
function Close(event) { 
     ref.removeEventListener('loadstop', LoadStop); 
     ref.removeEventListener('exit', Close); 
    } 

i zamknąć InAppBrowser ze strony, którą otworzyłem w przeglądarce (http://www.mypage.asp) Mam przycisk podobny do tego.

<a href="http://www.mypage.com/closeInAppBrowser.html"></a> 

Mam nadzieję, że pomoże to komuś innemu!

+0

Oto odpowiedź na # 2, wydaje się być "Nie". http://community.phonegap.com/nitobi/topics/open_external_page_in_inappbrowser_or_childbrowser_with_no_toolbar_and_close_it –

+0

Spowoduje to zamknięcie przeglądarki, ale spowoduje również, że przycisk powrotu sprzętu na Androidzie spowoduje to samo. Czy istnieje sposób na zachowanie domyślnej funkcjonalności przycisku Wstecz? – user1452893

8

Oto prostsze rozwiązanie, które może pomóc komuś.

// open win and turn off location 
var ref = window.open('http://myloginapp.com', '_blank', 'location=no'); 

// attach listener to loadstart 
ref.addEventListener('loadstart', function(event) { 
    var urlSuccessPage = "http://myloginapp/success/"; 
    if (event.url == urlSuccessPage) { 
    ref.close();  
    } 
}); 
+1

Dzięki człowieku. Uratowałeś mi 2 dni pracy !!! – Oluwafemi

+0

Wielkie dzięki. Może dobrze byłoby dodać komentarz, że przycisk zamykania w przeglądarce inapp powinien być znacznikiem zakotwiczenia z href = "http: // myloginapp/success /". Ale działał jak urok –