想着集成了就OK了,然而并不是这样的.还需要在里面调用方法.这就很难受了啊,看了一下API,记录下SuperWebview中的一些方法
SuperWebview中的一些方法,
private voidbindSomething(){
//设置一个监听,监听来自Html5页面发送出来的事件
//此处我们监听"abc"事件,监听Html5页面通过api.sendEvent发出"abc"事件时
addHtml5EventListener(newHtml5EventListener("contact") {
@Override
public voidonReceive(WebViewProvider provider,Object extra) {
showAlert("收到来自Html5的abc事件,传入的参数为:\n\n"+ extra +"\n\n");
}
});
}
/**
* 重写该函数,可实现处理收到来自Html5页面的操作请求,处理完毕后异步回调至Html5
*/
@Override
protected booleanonHtml5AccessRequest(WebViewProvider provider,UZModuleContext moduleContext) {
String name = moduleContext.optString("name");
//"requestEvent"与assets/widget/html/wind.html页面的发送请求相匹配
if("requestEvent".equals(name)){
JSONObject extra =newJSONObject();
try{
extra.put("value","哈哈哈,我是来自前端的事件");
}catch(Exception e){
}
//"fromNative"与assets/widget/html/wind.html页面的apiready中注册的监听相对应
sendEventToHtml5("fromNative",extra);
return true;
}
defaultHandleHtml5AccessRequest(moduleContext);
return true;
}
/**
* 重写该函数,可实现处理某Html5页面开始加载时,执行相应的逻辑
*/
@Override
protected voidonPageStarted(WebViewProvider provider,String url,Bitmap favicon) {
//远程Url,加载较慢
if(url.startsWith("http")){
showProgress();
}
}
/**
* 重写该函数,可实现处理某Html5页面结束加载时,执行相应的逻辑
*/
@Override
protected voidonPageFinished(WebViewProvider provider,String url) {
//远程Url,加载较慢
if(url.startsWith("http")){
mProgress.setText("加载进度:100");
hidenProgress();
};
}
/**
* 重写该函数,可实现处理某Html5页面加载进度发生变化时,执行相应的逻辑
*/
@Override
protected voidonProgressChanged(WebViewProvider provider, intnewProgress) {
//远程Url,加载较慢,显示进度,提升体验
mProgress.setText("加载进度:"+ newProgress);
if(100== newProgress){
hidenProgress();
}
}
/**
* 重写该函数,可实现处理某Html5页面dom的title标签发生变化时,执行相应的逻辑
*/
@Override
protected voidonReceivedTitle(WebViewProvider provider,String title) {
;
}
/**
* 重写该函数,可实现处理拦截某Html5页面是否允许访问某API,如模块的API,APICloud引擎的API
*/
@Override
protected booleanshouldForbiddenAccess(String host,String module,String api) {
return false;
}
/**
* 重写该函数,可实现处理当某Webview即将加载某Url时,是否进行拦截,拦截后,该Webview将不继续加载该Url
*/
@Override
protected booleanshouldOverrideUrlLoading(WebViewProvider provider,String url) {
if(url.contains("taobao")){
showAlert("不允许访问淘宝!");
return true;
}
return false;
}
//默认处理收到收到来自Html5页面的操作请求,并通过UZModuleContext给予JS回调
private voiddefaultHandleHtml5AccessRequest(finalUZModuleContext moduleContext){
String name = moduleContext.optString("name");
Object extra = moduleContext.optObject("extra");
AlertDialog.Builder dia =newAlertDialog.Builder(this,AlertDialog.THEME_HOLO_LIGHT);
dia.setTitle("提示消息");
dia.setMessage("收到来自Html5页面的操作请求,访问的名称标识为:\n["+ name +"]\n传入的参数为:\n["+ extra +"]\n\n"+"是否处理?\n");
dia.setCancelable(false);
dia.setPositiveButton("不处理", null);
dia.setNegativeButton("处理", newOnClickListener() {
public voidonClick(DialogInterface dialog, intwhich) {
dialog.dismiss();
JSONObject json =newJSONObject();
try{
json.put("result0","value0");
json.put("result1","value1");
json.put("result2","value2");
}catch(Exception e){
;
}
moduleContext.success(json, true);
}
});
dia.show();
}