js插件的开发需要几个注意点:
独立变量,方法。防止和其他js产生冲突,一般采用闭包。
暴露设置,暴露方法调用。为了插件根据需要做一些设置上的改变。
防止重复定义,一般有一个初始化,建议采用匿名函数实现只能初始化一次
使用js开发的IE插件可以在当前浏览的页面中执行js代码,在此基础上实现任何用户可以想到的功能。可以针对不用的网站做一些common处理(比如提取某类信息),也可以针对特定网站做特色处理(比如抢购火车票)。
实现这种插件方法比较简单,只需拷贝几个文件,修改一个注册表值即可。所以比较适合快速实现一些浏览器或者网站辅助功能。
实现步骤:
1.创建实现具体功能的html文件
//文件名称:getticketslist.html
//文件内容:
<script language="JavaScript">
var args = external.menuArguments
var doc = args.document
var cframe = doc.CONTENTS_IFRAME
if (cframe &&cframe.document) {
doc = cframe.document//获取当前页面的document元素
//TODO:从document中获取ticket list元素并做相应处理
}
</script>
2.创建注册表文件
//文件名称:getticketslist.reg
//文件内容:文件中的CLSID可以任意修改,唯一即可
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\{878EC0C9-AAAD-4331-9B3A-2D8BA93AEAD2}]
"CLSID"="{2FBA04EE-3024-11D2-8F1F-0000F87ABD16}"
"Default Visible"="Yes"
"Script"="c:\\getticketslist.html"
"MenuText"="处理tickets"
3.将html文件拷贝到reg文件中指定的路径(如c:\getticketslist.html)
4.运行getticketslist.reg,修改注册表
5.重启IE,在菜单【工具】中可以看到刚才添加的功能"处理tickets",点击执行
本篇为 uniapp原生插件开发-android端-component扩展
这里实现一个原生的MPAndroidChart的饼状图扩展
效果如下
提醒:修改完这些你可能需要重新打开android studio,不知道是不是我的as版本太新了,修改了,然后一直停止不了之前的同步进程,重新打开as让他构建项目
该组件的调用方式为:
方法描述
initComponentHostView :使用该组件时,会自动调用该方法,返回一个你要扩展的原生组件
@UniComponentProp(name = "labelColor") :给该组件添加一个属性,类似调用方式的 labelColor="#8A2BE2"
@UniJSMethod :声明一个该组件的方法,可以通过 this.refs.tPieChart.rotate() ,调用aging方法