我正在IBM的Worklight中编写一些使用Apache Cordova的代码。
我正在尝试打开InAppBrowser,而不是让用户点击"完成"完成后,我希望它在加载特定URL时自动关闭。这可能吗?
情景:
我基本上将用户引导到twitter.com(比使用oauth进程更容易)并且让用户在InAppBrowser浏览器中使用twitter,但是一旦用户登录(url成为新闻源URL)我想重定向用户直接发布到帖子网址,如果可能的话,一旦发布,就会回到应用程序。
编辑(2014年5月1日)
根据下面答案中的建议,我可以将用户定向到帖子页面,但是一旦完成加载,它就会重定向到主页,而实际上无法发送推文。有没有办法来解决这个问题?此外,InAppBrowser永远不会退出。
此外,以下代码仅在用户已登录时才有效。有没有办法说,如果用户未登录,请转到主页,如果他们转到帖子页?
// open InAppBrowser w/out the location bar
var ref = window.open('http://mobile.twitter.com/compose/tweet', '_blank', 'location=no');
// attach listener to loadstart
ref.addEventListener('loadstart', function(event) {
var urlSuccessPage = "http://mobile.twitter.com";
if (event.url == urlSuccessPage) {
ref.close();
}
});
答案 0 :(得分:2)
如果您坚持在用户导航到其他地方时关闭InAppBrowser,您可以尝试这样做:Phonegap build - Open external page in InAppBrowser or childbrowser with no toolbar and close it?
// open InAppBrowser w/out the location bar
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();
}
});
编辑:我建议您还查看InAppBrowser的整个文档及其对事件的使用。 http://docs.phonegap.com/en/3.1.0/cordova_inappbrowser_inappbrowser.md.html
也许loadstart
不适合使用。
也就是说,InAppBrowser的行为类似于常规网页;我不认为你可以做很多操作'或者更确切地说,在其中。