我正在尝试使用on loadstart
事件覆盖InAppBrowser网址,但遗憾的是没有运气,我不知道我是否遗漏了某些内容,或者即使这是否适用。
我想要做的是我用一个字符串连接url所以当用户点击InAappBrowser窗口中的任何url时,我用连接字符串覆盖该url。
我会感激任何帮助,或者如果有人之前尝试过这样的事情。
import { Component } from '@angular/core';
import { InAppBrowser } from '@ionic-native/in-app-browser';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
browser: any;
constructor(
public iab: InAppBrowser
) {}
openPage(){
this.browser = this.iab.create('http://example.com','_blank','hidden=no,location=yes');
this.browser.on('loadstart')
.subscribe(
data => data.url = data.url + '?mydata=true'
);
}
}
答案 0 :(得分:1)
答案是在loadstart上执行javascript代码,以使用executeScript
InAppBrowser方法覆盖使用我的新网址点击的任何网址。
openPage(){
this.browser = this.iab.create('https://example.com/','_blank','hidden=yes,location=yes,clearcache=yes,clearsessioncache=yes');
this.browser.on('loadstart')
.subscribe(
data => {
if(!data.url.includes('?mydata=true')){
this.browser.executeScript({
code: `window.location.href = '${data.url}' + '?mydata=true';`
});
}
}
);
this.browser.show();
}
答案 1 :(得分:0)
问题是您正在将位置字符串修改为所需的位置字符串但未加载它。这需要再次在浏览器中加载:
data.url = data.url + '?mydata=true'
希望这有帮助。