InAppBrowser Allow-Navigation ONLY MY DOMAIN 当它已经打开时
InAppBrowser Allow-Navigation ONLY MY DOMAIN when it is already open
我知道有一千个线程在谈论这个话题,但就是这样,真正阅读他们并执行他们所说的,我找不到关键。而且..我已经阅读并尝试了很多。
我的问题如下。我正在使用 InAppBrowser 模块 (InAppBrowser from @ ionic-native / in-app-browser / ngx)
我正在创建以下代码。
constructor (private iab: InAppBrowser, private platform: Platform) {
this.iab.create ('http://www.myweb.com/app', '_blank', 'EnableViewPortScale = yes, location = no, hidenavigationbuttons = yes, enableViewportScale = yes, hideurlbar = yes, zoom = no, mediaPlaybackRequiresUserAction = yes');
}
这会在我的应用程序中打开一个浏览器,直到这里,一切都是正确的。但是,一旦我进入,如果我开始导航并离开我的域,我希望它不可能发生。
但是一旦打开浏览器,就好像我的应用程序不对我浏览的域负责。
在我的 config.xml 中仍然有访问来源、允许导航和允许意图的规则,我只针对我的域。
如果您真的必须这样实施 IAB,您可以使用 loadstart
事件侦听器来防止加载未经授权的 URL,如 in this article 所述,然后使用 close
方法在不希望导航 URL 时退出它。您也可以重新加载您的初始域。 (跳转到链接文章中的使用loadstart事件关闭InAppBrowser)
无论如何,您应该尽可能避免使用 InAppBrowser。
谢谢 post @andreszs 我找到了解决方案。
真正的问题是至少使用 IONIC NATIVE InAppBrowser。如果 "Location" 选项未激活,则不会加载 browser.on ('loadstart') 等事件。然后,使用带有 ionic 的 angular@typescript 代码,我能够调用 cordova inappbrowser 的基本函数。
this.browser = this.iab.create(myurl, '_blank', 'location=yes');
this.browser.on('loadstart').subscribe(event => {
if(event.url.search(notMYurl) == -1) {
this.browser.close();
}
});
我知道有一千个线程在谈论这个话题,但就是这样,真正阅读他们并执行他们所说的,我找不到关键。而且..我已经阅读并尝试了很多。
我的问题如下。我正在使用 InAppBrowser 模块 (InAppBrowser from @ ionic-native / in-app-browser / ngx)
我正在创建以下代码。
constructor (private iab: InAppBrowser, private platform: Platform) {
this.iab.create ('http://www.myweb.com/app', '_blank', 'EnableViewPortScale = yes, location = no, hidenavigationbuttons = yes, enableViewportScale = yes, hideurlbar = yes, zoom = no, mediaPlaybackRequiresUserAction = yes');
}
这会在我的应用程序中打开一个浏览器,直到这里,一切都是正确的。但是,一旦我进入,如果我开始导航并离开我的域,我希望它不可能发生。 但是一旦打开浏览器,就好像我的应用程序不对我浏览的域负责。
在我的 config.xml 中仍然有访问来源、允许导航和允许意图的规则,我只针对我的域。
如果您真的必须这样实施 IAB,您可以使用 loadstart
事件侦听器来防止加载未经授权的 URL,如 in this article 所述,然后使用 close
方法在不希望导航 URL 时退出它。您也可以重新加载您的初始域。 (跳转到链接文章中的使用loadstart事件关闭InAppBrowser)
无论如何,您应该尽可能避免使用 InAppBrowser。
谢谢 post @andreszs 我找到了解决方案。
真正的问题是至少使用 IONIC NATIVE InAppBrowser。如果 "Location" 选项未激活,则不会加载 browser.on ('loadstart') 等事件。然后,使用带有 ionic 的 angular@typescript 代码,我能够调用 cordova inappbrowser 的基本函数。
this.browser = this.iab.create(myurl, '_blank', 'location=yes');
this.browser.on('loadstart').subscribe(event => {
if(event.url.search(notMYurl) == -1) {
this.browser.close();
}
});