9
  1. 我想在 InAppBrowser 或子浏览器中打开一个外部页面,我不显示任何工具栏,并且我可以在我的外部页面中有一个按钮来关闭浏览器并从我打开浏览器的位置返回到应用程序。那么在没有 DONE 按钮的情况下如何关闭呢?我已经看到,如果我有 var ref = window.open(encodeURI(url), '_self', 'location=yes'); 然后可以使用 ref.close() 关闭浏览器;但是如果我在打开的外部页面中使用它不起作用,它不会关闭浏览器?

  2. 如果我在配置文件中将方向设置为纵向,是否有任何方法可以自动旋转它们?我知道如果您手动操作,而不是通过构建服务,您可以自动旋转子浏览器。还是我必须将方向设置为两者?

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

4

2 回答 2

9

OK,关闭的问题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);
    } 

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

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

我希望它可以帮助别人!

于 2013-03-29T10:05:35.863 回答
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();    
    }
});
于 2013-04-18T04:25:29.360 回答