全部产品
云市场
云游戏

其它特性 Other Features

更新时间:2019-01-14 16:38:08

页面加载完毕事件 WindVaneReady

当页面加载完毕后,WindVane 会引发 WindVaneReady 事件,页面可以监听这一事件进行一些操作。页面刷新、页面历史记录回退同样都会触发这个事件。

  1. document.addEventListener('WindVaneReady', function(e) {
  2. alert('WindVaneReady');
  3. }, false);

应用切换后台事件 Background

当应用被切换到后台(如切换应用、打开通知栏等操作)时,WindVane 会引发 WV.Event.APP.Background 事件,页面可以监听这一事件进行一些操作。

由于 Android 平台的限制,即使从当前 WebView 切换到其它 Activity,也会引发 WV.Event.APP.Background 事件,而不仅仅是切换到后台时。

注意:应用被切换到后台时能做的操作较少,可能会被延迟到页面重新激活时才执行。而且, 务必不要 在该事件中弹 alert,会导致一些 Android 机型出现严重 BUG,打开任何页面都是空白。

WindVane iOS VER.5.6.0 或更高,更新了 Background 事件的触发条件,保持与 Android 的一致:从当前 WebView 切换到其它 Native 或 WebView 时也会触发 Background 事件。

同时增加了一个事件参数 to,用于区分从当前 WebView 切换到了何处,其可能的值为:

  • 'background' - 表示从当前 WebView 切换到了后台。

如果 to 参数不存在,表示无法确定从当前 WebView 切换到了何处。

  1. document.addEventListener('WV.Event.APP.Background', function(e) {
  2. // 一些机型退出时弹 alert 会出问题。
  3. console.log('Event Background');
  4. }, false);

应用激活事件 Active

当应用被切换到后台再切换回来时,WindVane 会引发 WV.Event.APP.Active 事件,页面可以监听这一事件进行一些操作。

由于 Android 平台的限制,即使从其它 Activity 切换到当前 WebView,也会引发 WV.Event.APP.Active 事件,而不仅仅是从后台切换到前台时。

WindVane iOS VER.5.6.0 或更高,更新了 Active 事件的触发条件,保持与 Android 的一致:从其它 Native 或 WebView 切换到当前 WebView 时也会触发 Active 事件。

同时增加了一个事件参数 from,用于区分从何处切换到当前 WebView,其可能的值为:

  • 'background' - 表示从后台切换到了当前 WebView。
  • 'webview' - 表示从其它 WebView 切换到了当前 WebView。

如果 from 参数不存在,表示无法确定从何处切换到当前 WebView。

VER.WindVane 6.3.0 或更高,添加了一个 data 参数,用来获取从 WebAppInterface.pop 中传递的数据。

  1. document.addEventListener('WV.Event.APP.Active', function(e) {
  2. alert('Event Active');
  3. }, false);

下拉刷新 Pull Refresh

仅限 WindVane iOS

WindVane iOS 在默认情况下,会自动启用下拉刷新。要禁止下拉刷新,请将以下元数据添加到 HTML 的 HEAD 中:

  1. <meta id="stopUsePullRefresh" value="true">

在下拉刷新的提示部分,可以选择是否显示当前页面的域名。要显示当前域名,请将以下元数据添加到 HTML 的 HEAD 中:

  1. <meta id="urlInLaw" value="true">

无限滚动 Infinite Scroll

仅限 WindVane iOS

当页面滚动到最下方,可以通过无限滚动来动态的加载新内容。要启用无限滚动,请将以下元数据添加到 HTML 的 HEAD 中:

  1. <meta id="infiniteScroll" value="true">

在 WindVane iOS 中,请将以下元数据也添加到 HEAD 中:

  1. <meta id="urlInLaw" value="true">

urlInLaw 的 value 请根据需要设置,这里必须添加 urlInLaw,是由于 WindVane iOS 遗留的 BUG。

添加了元数据后,就可以收到无限滚动的事件 WV_INFINIT_SCROLL,在该事件中可以动态的获取新内容,并添加到页面的末尾。新内容获取到之后,需要调用 WVScrollWidget.hiddenInfinitScroll 这一 API 隐藏无限滚动时的加载提示。

  1. document.addEventListener('WV_INFINIT_SCROLL', function(e) {
  2. var data = 'New document element for infinit scroll';
  3. window.WindVane.call('WVScrollWidget', 'hiddenInfinitScroll', {}, function(e) {
  4. var newDiv = document.createElement('div');
  5. newDiv.innerHTML = data;
  6. document.body.appendChild(newDiv);
  7. });
  8. }, false);