浏览器事件

TAB_EVENT

  • 功能简介:Tab窗口事件

  • 事件分类及触发场景

     TAB_REMOVE
     用户关闭UC的一个窗口
    
     TAB_ADD
     用户添加UC的一个窗口
    
  • 版本号:1.0

CAMERA_EVENT

  • 功能简介:相机事件。增加到UC“拍照选择扩展内”

  • 事件分类及触发场景

    网页内或者浏览器内会触发拍照的场景,例如在新浪微博网页中点击拍照    
    
  • 成功案例:Camera360:注册该拍照事件,将Camera360的增加在拍照选择中,增强Camera360的曝光率。

  • 版本号:1.0

SHARE_EVENT

  • 功能简介:分享事件:增加到UC“分享选择扩展内”

  • 事件分类及触发场景

     用户在UC使用“长按分享链接”等分享功能,通过选择相应的插件,点击分享按钮时触发。  
    
  • 成功案例:印象笔记:通过注册该事件,将印象笔记增加到UC分享模块的分享选择中。新浪微博,QQ空间

  • 版本号: 1.0

VIEW_FILE

  • 功能简介:文件查看事件:增加到UC“文件查看选择扩展内”

  • 事件分类及触发场景

    用户在UC文件管理或下载管理中打开文件,会弹出对话框让用户选择打开方式,用户选择插件时触发该通知。       
    
  • 版本号: 1.0

PAGE_EVENT

  • 功能简介:页面加载事件:包含页面加载开始和页面加载结束。

  • 事件分类及触发场景

    PAGE_START 一个页面开始被加载触发通知。
    PAGE_FINISH 一个页面加载结束触发通知。
    
  • 成功案例:惠惠比价插件(JS):通过监听onPageFinish事件,获取url判断是不是京东,如果是则通过注入 js显示惠惠比价插件。

  • 版本号: 2.0

MEMORY_EVENT

  • 功能简介:内存状态事件

  • 事件分类及触发场景

     UC统计内存状态发现变化时触发通知。
     MEMORY_NORMAL
     MEMORY_LOW
     MEMORY_BAD
     MEMORY_VERYBAD
     通过这个事件,可以知道当前系统内存状况。
    
  • 版本号: 1.0

TRANSLATE_EVENT

  • 功能简介:翻译事件:增加到UC“翻译选择扩展内”

  • 事件分类及触发场景

    用户长按网页选择“自由复制”,选择“翻译”弹出翻译对话框,选择插件按下确认按钮时通知。
    
  • 成功案例:翻译插件:通过注册该事件,将翻译插件增加到翻译选择列表中。

  • 版本号: 1.0

DOWNLOAD_EVENT

  • 功能简介:下载事件:注册该事件将插件添加到UC的“文件下载选择扩展内”

  • 事件分类及触发场景

    用户点击网页下载弹出下载对话框时,选择插件按下确认按钮时通知。 
    

DEMO1:监听浏览器事件

如果你的插件需要与浏览器进行交互,你可以建立一个Event Receiver,这个Event Receiver必须继承SDK提供的AbstractEventReceiver类。这样,插件可以监听浏览器的事件,并根据这些事件完成做出响应。一个简单的监听浏览器事件的插件如下所示:

package com.uc.demo;

import com.uc.addon.sdk.remote.AbstractEventReceiver;
import com.uc.addon.sdk.remote.Browser;
import com.uc.addon.sdk.remote.EventBase;
import com.uc.addon.sdk.remote.EventIds;
import com.uc.addon.sdk.remote.protocol.ToastBuilder;

public class PageEventReceiver extends AbstractEventReceiver {

    @Override
    public void onEvent(int eventId, EventBase event) {
        if(eventId == EventIds.EVENT_PAGE_START){
            ToastBuilder toastBuilder = ToastBuilder.makeText("This is a toast shown by addon", ToastBuilder.SHORT_DURATION);
            Browser browser = getBrowser();
            browser.util.showToast(toastBuilder);
        }
    }

}

该插件监听浏览器页面加载事件,当页面加载开始时触发通知。具体监听的页面定义在addon_config.xml文件中。

<?xml version="1.0" encoding="utf-8"?>
<addon name="PageEvent"
       icon="icon.png"
       versionCode="1"
       minSdkVersion="2.0">

    <uses-permission name="addon.permission.TOAST" />
    <uses-permission name="addon.permission.PAGE" />

    <event-receiver name="com.uc.demo.PageEventReceiver"
            description="PageEventReceiver"
            icon="icon.png">
        <intent-filter>
            <action name="addon.action.PAGE_EVENT"/>
            <category name="addon.category.PAGE_START"/>
            <data scheme="http" host="*.baidu.com"  />
        </intent-filter>
    </event-receiver>
</addon>

从配置文件上可以看出,该插件监听百度的页面,当打开*.baidu.com时,插件会被触发并作出响应。
注意:对这个插件,需要在配置文件中添加TOAST权限和PAGE权限。(了解更多权限)

效果

后续