为帮助用户更好更快的使用插件,论坛维护了一个示例(插件demo论坛帖链接),示例中包含示例代码、知识点讲解、注意事项等,供您参考。
作者联系方式QQ:503870798 ;有不解的地方可以随时咨询,同时欢迎提供有效意见和建议
插件demo论坛帖:https://community.yonyou.com/thread-173419-1-1.html
简介
本插件主要是为创建一个悬浮窗,Android7.0版本以上适用。编译的时候,记得使用升级环境编译。悬浮窗内容为html页面
创建一个悬浮窗,悬浮窗为一个html网页,该网页有一个floatWebView的对象,包含了功能相同的show,hide,remove,offset,size,noTouch,noLimit,center,canFocus,followTouch,stickSide方法,以及event方法用于和APP交互
create({params}, callback(ret, err))
name:
url:
w:
h:
x:
y:
noTouch:
noLimit:
center:
followTouch:
stickSide:
ret:
{
status: true, //布尔类型;操作成功状态值,true|false
msg: "OK", //字符串类型;文字描述
}
{
status: true, //布尔类型;操作成功状态值,true|false
msg: "event", //字符串类型;表示此次回调为浮窗中js调用event方法
eventName: "msg", //字符串类型;浮窗中js调用event方法传递的eventName,用于区分不同事件
data: {}, //JSON 对象类型;表示此次event传递的数据
}
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
},function(ret){
if (ret.msg=='event') {
switch (ret.eventName){
case 'msg':
tips(ret.data?JSON.stringify(ret.data):'测试event');
break;
}
}
});
Android系统
可提供的1.0.0及更高版本
悬浮窗内执行js代码,效果类似于js的eval方法
eval({params})
name:
jsstring
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
});
floatWebView.eval({name:"test",jsstring:'alert("提示弹窗")'})
Android系统
可提供的1.0.1及更高版本
显示悬浮窗,悬浮窗创建后默认是显示的
show({params})
name:
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
});
floatWebView.show({name:"test"})
Android系统
可提供的1.0.0及更高版本
隐藏指定悬浮窗
hide({params})
name:
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
});
floatWebView.hide({name:"test"})
Android系统
可提供的1.0.0及更高版本
移除指定悬浮窗
remove({params})
name:
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
});
floatWebView.remove({name:"test"})
Android系统
可提供的1.0.0及更高版本
设置指定悬浮窗的偏移量
offset({params})
name:
x:
y:
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
});
floatWebView.offset({name:"test",x:300,y:300})
Android系统
可提供的1.0.0及更高版本
设置指定悬浮窗的大小
size({params})
name:
w:
h:
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
});
floatWebView.size({name:"test",w:300,h:300})
Android系统
可提供的1.0.0及更高版本
设置指定悬浮窗是否无法触摸
noTouch({params})
name:
noTouch:
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
});
floatWebView.noTouch({name:"test",noTouch:true})
Android系统
可提供的1.0.0及更高版本
设置指定悬浮窗是否可以显示到屏幕外
noLimit({params})
name:
noLimit:
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
});
floatWebView.noLimit({name:"test",noLimit:true})
Android系统
可提供的1.0.0及更高版本
设置指定悬浮窗是否居中
center({params})
name:
center:
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
});
floatWebView.center({name:"test",center:true})
Android系统
可提供的1.0.0及更高版本
设置指定悬浮窗是否可获得焦点,通常获取焦点后,悬浮窗可以和软键盘发生交互,但被覆盖的应用会失去焦点,具体表现例如:游戏将失去背景音乐
canFocus({params})
name:
canFocus:
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
});
floatWebView.canFocus({name:"test",canFocus:true})
Android系统
可提供的1.0.0及更高版本
设置指定悬浮窗是否跟随触摸移动
followTouch({params})
name:
followTouch:
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
});
floatWebView.followTouch({name:"test",followTouch:true})
Android系统
可提供的1.0.0及更高版本
设置指定悬浮窗是否自动贴边,近在会跟随触摸移动时生效
stickSide({params})
name:
stickSide:
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
});
floatWebView.stickSide({name:"test",stickSide:true})
Android系统
可提供的1.0.0及更高版本
和同名插件接口功能相同,下面仅仅列举一下size方法的使用
悬浮窗内接口的传参不同于插件接口,传入参数必须为json字符串,也就是需要使用JSON.stringify编译一次,具体看示例
floatWebView.size( JSON.stringify({params}) )
name:
w:
h:
APP中
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
});
悬浮窗中
var data = {name:"test",w:300,h:300};
floatWebView.size( JSON.stringify(data) );
Android系统
可提供的1.0.0及更高版本
悬浮窗给APP发送事件,用于和APP进行交互行为
floatWebView.event( JSON.stringify({params}) )
name:
eventName:
data:
APP中
var floatWebView = api.require('floatWebView');
floatWebView.create({
name:"test",
url:"widget://html/test.html",
},function(ret){
if (ret.msg=='event') {
switch (ret.eventName){
case 'msg':
tips(ret.data?JSON.stringify(ret.data):'测试event');
break;
}
}
});
悬浮窗中
var data = {name:"test",eventName:"msg",data:{"text":"APP响应了事件"}};
floatWebView.event( JSON.stringify(data) );
Android系统
可提供的1.0.1及更高版本