2016-03-03 81 views
2

我已閱讀了許多關於此的帖子和文章,但仍找不到一個好的解決方案。我想:返回到PhoneGap的本地應用程序的外部頁面

  1. 啓動應用程序的本地頁面
  2. 繼續使用window.location.href一個AJAX事件後觸發的外部頁面。
  3. 當使用window.location.href =「appURL://」單擊關閉按鈕時,從外部頁面返回本地應用程序。

我用自定義url(appURL://)設置了URL_SCHEME插件。該網址直接在瀏覽器中運行,但不在應用內。它似乎只是忽略它並轉向其他代碼。

現在我已閱讀關於InAppBrowser和ChildBrowser。我嘗試了InAppBrowser,但它不保留我需要的設置,如appendUserAgent和AllowInlineMediaPlayback。我知道我可以設置後者,但沒有看到前者的方法。我也想確保它僅保留在橫向上,並且不希望有兩個不同的地方進行配置設置。即使沒有,我仍然無法將它鏈接迴應用程序。

如果沒有瀏覽器插件,沒有辦法從外部網站鏈接回本地應用程序,或者如果沒有,我該如何使用瀏覽器插件使其運行良好?我完全可以控制外部網站。

我測試的主要設備是iOS 9.2.1上的iPhone 6,我正在使用PhoneGap Build。

回答

1

我不認爲它有可能做到我在這一點上提出的問題,但如果你保留它在本地,你可以做類似的事情,並有更大的靈活性。最好的辦法是在本地頁面中加載你需要的內容。在我的情況下,我需要整個網站,包括所有的東西,所以我使用了一個iframe。請記住,由於不同的域名,iframe將無法訪問上面的窗口,所以我在本地頁面設置了一個onload事件來檢查iframe的變化。當它有我正在尋找的網址時,我會以不同的方式處理並在本地應用中加載不同的頁面。

下面是一個例子。我正在使用這個jQuery和設置,以便URL檢查是/ app/LOCALPAGEPATH。因此,如果找到的網址是/app/index.html,它會轉到index.html。

$('iframe').load(function(){    
    var url = $(this).get(0).contentWindow.location.href; 
    var appIndex = url.indexOf('/app/'); 
    if (appIndex > -1) { 
     var appURL = url.substr(appIndex+5); 
     window.location.href = appURL; 
    } 
}); 
1

你可以讓你的關閉按鈕執行

window.history.go(-(window.history.length - 1)); 

這應該回到當地的index.html,因爲它是它加載的第一頁。

相關問題