Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cordova 如何使用;executeScript";ionic 2中的inAppBrowser插件方法?_Cordova_Ionic Framework_Ionic2_Inappbrowser - Fatal编程技术网

Cordova 如何使用;executeScript";ionic 2中的inAppBrowser插件方法?

Cordova 如何使用;executeScript";ionic 2中的inAppBrowser插件方法?,cordova,ionic-framework,ionic2,inappbrowser,Cordova,Ionic Framework,Ionic2,Inappbrowser,我在单击事件中有此代码 let browser = new InAppBrowser('http://example.com/test', '_self'); browser.executeScript({code: "(function() { alert(123); })()"}); 单击按钮时,inAppBrowser会打开页面,但脚本不会运行。 我关闭了浏览器,然后再次单击按钮,现在脚本确实运行了 为什么它没有第一次运行?在InAppBrowser.addEventListener(l

我在单击事件中有此代码

let browser = new InAppBrowser('http://example.com/test', '_self');
browser.executeScript({code: "(function() { alert(123); })()"});
单击按钮时,inAppBrowser会打开页面,但脚本不会运行。
我关闭了浏览器,然后再次单击按钮,现在脚本确实运行了


为什么它没有第一次运行?

在InAppBrowser.addEventListener(loadstart、loadstop、loaderror)中添加executeScript,然后它将第一次运行。我正在使用ionic 1,但我想它在ionic 2中也会起作用。我在下面添加了一个示例代码。(这是离子1中的外观)


它不再以这种方式工作了。试试看

browser.on('loadstop').subscribe(() => {
  browser.executeScript({code: 'your_code'})
});

这对我有效。

尝试运行以下代码。这对我有用

   var ref = cordova.InAppBrowser.open("https://www.test.com/", '_blank');
            ref.addEventListener('loadstart', function() {
                ref.executeScript({
                    code: '//put the script you want to run here'
                });
            })

请确保为_blank,而不是_system_系统将打开本机浏览器(如chrome)

@Andrews的回答对我来说非常有效。以下是我使用@Ionic native/Themable浏览器开发的Ionic 3应用程序的完整代码:

let options: ThemeableBrowserOptions = {
        statusbar: { color: '#1976d2ff' },
        toolbar: { height: 44, color: '#1976d2ff' },
        closeButton: { align: 'right', event: 'closed', wwwImage: '/assets/images/icons/close-empty.png', wwwImagePressed: '/assets/images/icons/close-outline.png', wwwImageDensity: 3 },
        usewkwebview: 'yes',
        disallowoverscroll: 'yes',
        allowInlineMediaPlayback: 'yes',
        mediaPlaybackRequiresUserAction: 'no'
    },
    browser: ThemeableBrowserObject = self.iab.create(url, '_blank', options);
if (this.platform.is('ios')) {
    browser.on('loadstop').subscribe(() => {
        browser.executeScript({ code: 'document.body.classList.add("cordova-ios");' });
    });
}

通过这种方式,我可以通过
body显式设置Cordova中的iOS样式。Cordova iOS
类继承@RezaT1994将'\u self'更改为'\u blank'为我解决了这个问题

let browser = new InAppBrowser('http://example.com/test', '_blank');
browser.executeScript({code: "(function() { alert(123); })()"});

当我尝试添加VentListener时,它告诉我类型“InAppBrowser”上不存在属性“addEventListener”。这里发生了什么?你安装了吗?我安装了,并且该方法不是Ionic包装版本的一部分。我通过使用常规的cordova版本访问了它。亲爱的。团队,我们想将cookies解析到浏览器,我们正在开发基于ionic 3的应用程序。请帮助我们我们尝试了这个。inAppBrowserInstance=this.inAppBrowser.create(URL,'U blank');this.inAppBrowserInstance.on('beforeload').subscribe(事件=>{this.inAppBrowserInstance.executeScript({code:
document.cookie=“JSSessionId=cookievalue”
})。然后()。但不起作用
let browser = new InAppBrowser('http://example.com/test', '_blank');
browser.executeScript({code: "(function() { alert(123); })()"});