Cordova - InAppBrowser


该插件用于在 Cordova 应用程序内打开网络浏览器。

第 1 步 - 安装插件

我们需要在命令提示符窗口中安装此插件才能使用它。

C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-inappbrowser

第 2 步 - 添加按钮

我们将在index.html中添加一个用于打开inAppBrowser窗口的按钮。

第 3 步 - 添加事件监听器

现在让我们在index.js的onDeviceReady函数中为按钮添加事件监听器。

document.getElementById("openBrowser").addEventListener("click", openBrowser);

第 4 步 - 创建函数

在此步骤中,我们将创建将在应用程序内打开浏览器的函数。我们将其分配给ref变量,稍后我们可以使用它来添加事件侦听器。

function openBrowser() {
   var url = 'https://cordova.apache.org';
   var target = '_blank';
   var options = "location = yes"
   var ref = cordova.InAppBrowser.open(url, target, options);
   
   ref.addEventListener('loadstart', loadstartCallback);
   ref.addEventListener('loadstop', loadstopCallback);
   ref.addEventListener('loaderror', loaderrorCallback);
   ref.addEventListener('exit', exitCallback);

   function loadstartCallback(event) {
      console.log('Loading started: '  + event.url)
   }

   function loadstopCallback(event) {
      console.log('Loading finished: ' + event.url)
   }

   function loaderrorCallback(error) {
      console.log('Loading error: ' + error.message)
   }

   function exitCallback() {
      console.log('Browser is closed...')
   }
}

如果我们按浏览器按钮,我们将在屏幕上看到以下输出。

Cordova InAppBrowser 打开

控制台还将监听事件。loadstart事件将在 URL 开始加载时触发,loadstop 事件将在 URL 加载时触发。我们可以在控制台中看到它。

Cordova InAppBrowser 控制台

一旦我们关闭浏览器,退出事件就会触发。

Cordova InAppBrowser 退出控制台

InAppBrowser 窗口还有其他可能的选项。我们将在下表中对其进行解释。

序列号 选项和详细信息
1

地点

用于打开或关闭浏览器位置栏。值为yesno

2

用于在应用程序浏览器中隐藏或显示。值为yesno

3

清除缓存

用于清除浏览器cookie缓存。值为yesno

4

清除会话缓存

用于清除会话 cookie 缓存。值为yesno

5

飞涨

用于隐藏或显示 Android 浏览器的缩放控件。值为yesno

6

硬件背部

,使用硬件后退按钮向后导航浏览器历史记录。单击“后退”按钮后,“否”将关闭浏览器。

我们可以使用ref(引用)变量来实现其他一些功能。我们将向您展示一些简单的例子。为了删除事件侦听器,我们可以使用 -

ref.removeEventListener(eventname, callback); 

为了关闭 InAppBrowser,我们可以使用 -

ref.close();

如果我们打开隐藏窗口,我们可以显示它 -

ref.show();

甚至 JavaScript 代码也可以注入到 InAppBrowser -

var details = "javascript/file/url"
ref.executeScript(details, callback);

相同的概念可用于注入 CSS -

var details = "css/file/url"
ref.inserCSS(details, callback);