Phonegap build - 在没有工具栏的InAppBrowser或childbrowser中打开外部页面并关闭它?

时间:2013-03-27 18:09:54

标签: childbrowser phonegap-build inappbrowser

  1. 我想在InAppBrowser或childbrowser中打开一个外部页面,在那里我没有显示任何工具栏,我可以在我的外部页面中有一个关闭浏览器并从我打开的地方返回应用程序的按钮浏览器。 那么当你没有DONE按钮时如何关闭? 我已经看到了,如果我有 var ref = window.open(encodeURI(url),'_ self','location = yes'); 然后可以用ref.close()关闭浏览器;但是,如果我在我打开的外部页面中使用它不起作用,它是不是关闭浏览器?

  2. 如果我在配置文件中将方向设置为纵向,有没有办法自动旋转其中任何一个?我知道如果您手动执行,可以自动旋转子浏览器,而不是通过构建服务。或者我必须将方向设置为两者?

  3. 我已经测试了打开ChildBrowser和InAppBrowser的所有不同方法,我真的看不出它们之间有什么重大区别? InAppBrowser可以使用本机功能而不能使用ChildBrowser吗?

2 个答案:

答案 0 :(得分:9)

好的,关闭问题1已解决。 这是我用来在InAppBrowser中打开外部页面的方法。 从我在InAppBrowser中加载的页面中,我可以关闭InAppBrowser本身,从我打开浏览器的位置返回到我的应用程序。

在您的服务器上创建一个页面 - closeInAppBrowser.html,它只是一个空的html页面,它什么都不做

我用这个打开浏览器:

<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);
    } 

要从我在浏览器中打开的页面关闭InAppBrowser(http://www.mypage.asp),我有一个像这样的按钮链接。

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

我希望它可以帮助别人!

答案 1 :(得分:8)

这是一个可以帮助某人的更简单的解决方案。

// 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();    
    }
});