android webview第三方框架,安卓快速开发框架(十二)XBaseAndroid WebView引擎

XBaseBrowserActivity可以用于H5应用加载,简易的浏览器,webApp等。

遇到问题看看这个

打开网页

ActivityRouter.getInstance()

.add(XBaseBrowserActivity.WEB_URL,XBaseBrowserActivity.ANDROID_ASSSET_PATH + "template/index.html")//加载本地asset加上XBaseBrowserActivity.ANDROID_ASSSET_PATH + 你的html路径。

.add(XBaseBrowserActivity.SHOW_TITLE_BAR,true)//是否显示标题栏

.add(XBaseBrowserActivity.SHOW_REFRESH,false)//是否可以下拉刷新

.add(XBaseBrowserActivity.STATUS_COLOR,R.color.main_color)//设置状态栏颜色,默认是蓝色

.add(XBaseBrowserActivity.START_CACHE,true)//是否开启缓存

.startActivity(this,XBaseBrowserActivity.class);

JS交互

直接可在h5网页中写入以下方法。

JS方法

参数

返回

备注

showLoading

string

void

xbase.showLoading('正在加载中')

closeLoading

void

void

xbase.closeLoading()

toast

string

void

xbase.toast('弹出')

sendEvent

int,string

void

xbase.sendEvent(1,"哈哈哈")

getIntConfig

string

int

var config = xbase.getIntConfig('ssss')

getStringConfig

string

string

var config = xbase.getStringConfig('ssss')

getBooleanConfig

string

boolean

var config = xbase.getBooleanConfig('ssss')

setInt(String,Boolean)Config

int(string,boolean)

void

var config = xbase.setInt(String,Boolean)Config()

setCache

string,string

void

xbase.setCache('name','董')

gettCache

string

string

xbase.getCache('name')

close

void

void

xbase.close()

kill

void

void

xbase.kill()

get

string url,string tag

string

post

string url,string params,string tag

string

showNotification

参数见演示

void

alert

void

void

alert()

confirm

string

void

confirm()

prompt

string

string

prompt()

openActivity

string,string

void

xbase.openActivity();

download

string,string,string,boolean,boolean,int

xbase.download();

getNetworkStatus

void

boolean

xbase.getNetworkStatus();

getBooleanExtra

string,boolean

void

xbase.getBooleanExtra('ggg',false);//获取getIntent()参数

getIntExtra

string,int

void

xbase.getIntExtra('ggg',-1);//获取getIntent()参数

getStringExtra

void

string

xbase.getStringExtra('hh');

JS对应接口如下。传参请务必意义对应。js方法必须加上xbase.xxx();

package com.hengyi.baseandroidcore.browser;

/**

* Created:2018/8/11

* Time:0:16

* Author:dongzp

* Email:[email protected]

* Project:XBaseAndroid

* Use:

*/

public interface IBaseJsMapping {

void openActivity(String activityName,String params);

void showLoading(String msg);

void closeLoading();

void toast(String msg);

void sendEvent(int code,String content);

int getIntConfig(String key);

String getStringConfig(String key);

boolean getBooleanConfig(String key);

void setIntConfig(String key,int value);

void setStringConfig(String key,String value);

void setBooleanConfig(String key,boolean value);

void setCache(String key,String value);

String getCache(String key);

//关闭当前界面

void close();

//杀死APP

void kill();

void doGet(String url, final String tag,final int notifyId);

void doPost(String url, String params, final String tag, final int notifyId);

void download(String fileUrl, String saveFilename, final String authorities, boolean showNotification, boolean isCallback, final int notifyId);

void showNotification(String iconId,String resourceDir,String activityName,String tickerText,String title,String content,int notifyId);

boolean getNetworkStatus();

boolean getBooleanExtra(String name,boolean defaultValue);

int getIntExtra(String name,int defaultValue);

String getStringExtra(String name);

}

h5 演示代码

h5演示使用了Vue技术,如果您还不会。请先熟悉。

XBaseAndroid内部网页

//xbase.toast("我是网页,我调用的安卓原生的信息");

body,html{padding: 0px;margin: 0px;}

header{font-size: 20px;color:#000;padding-left:10px;height:36px;line-height: 36px;border-bottom: 1px dashed #ccc;}

.content{

text-indent: 2em;line-height: 30px;margin: 5px;

}

button{

background:#AB8BE6;

height: 40px;

line-height: 40px;

text-align: center;

border-radius: 5px;

margin:2%;

border: none;

color:#fff;

width:96%;

}

XBaseAndroid

XBaseAndroid一款集成了网络请求,本地缓存,配置文件,数据库映射,权限申请,链表管理Activity,简化Activity、Service、Broadcast启动, 万能ListView,GridView适配器、高仿IOS弹窗、倒计时/延迟执行,标题栏组件,图片显示,webview引擎,APP更新组件,APP崩溃日志组件,线程池组件,视频播放器,三级地址选择,热更新组件

显示Loading

关闭当前界面

关闭整个应用

发送get请求

发送post请求

alert弹窗

confirm弹窗

prompt弹窗

发送通知

打开Activity

获取当前Activity intent参数

var vue = null;

/**

* 1参数 是否请求成功

* 2参数 请求tag

* 3参数 notifyId 唯一标识符

*/

function httpCallback(status,tag,notifyId,response){

alert(status+","+ tag +"," + notifyId +","+ response );

xbase.closeLoading();

}

/**

* 文件下载进度条回调

*/

function downloadProgressBar(progress,progress2,speed,notifyId){

vue.downloadText = "演示下载文件 当前网速:" + speed +" 下载:" + progress;

}

/**

* 文件路径回调

*/

function downloadSuccess(filename,notifyId){

}

/**

* 下载文件开始

*/

function downloadStart(notifyId){

}

/**

* 下载错误回调 message为错误信息

*/

function downloadError(message,notifyId){

}

/**

* 保存路径回调

*/

function downloadFinish(savePath,notifyId){

}

vue = new Vue({

el:"#app",

data:{

"downloadText":"演示下载文件",

},

created:function(){

xbase.toast("当前网络状态:" + xbase.getNetworkStatus());

},

methods:{

"btn_showloading":function(){

xbase.showLoading("正在加载中");

var timer = setTimeout(function(){

xbase.closeLoading();

clearTimeout(timer);

},2000);

},

"btn_close":function(){

xbase.close();

},

"btn_kill":function(){

xbase.kill();

},

"btn_get":function(){

xbase.showLoading("正在请求中");

xbase.doGet("http://api.cleveriip.com/","123",9000);

},

"btn_post":function(){

xbase.showLoading("正在请求中");

xbase.doPost("http://api.cleveriip.com",JSON.stringify({name:"123","age":21}),"123",8000);

},

"btn_alert":function(){

alert("弹窗");

},

"btn_confirm":function(){

var res = confirm("你是安卓开发工程师吗");

alert(res);

},

"btn_prompt":function(){

var info = prompt("请输入您的姓名");

alert("您输入的姓名是:" + info);

},

"btn_notification":function(){

xbase.showNotification("head","drawable","com.hengyi.baseandroiddemo.MainActivity","您有一个通知","温馨提示","您正在使用XBaseAndroid H5功能",12566);

},

"btn_activity":function(){

xbase.openActivity("com.hengyi.baseandroiddemo.MainActivity","name=1&time=2");

},

"btn_params":function(){

var res = xbase.getBooleanExtra("show_title_bar",false);

alert("当前是否开启缓存:" + res);

},

"btn_download":function(){

var fileName = prompt("请输入保存的文件名");

if(fileName == "null" || fileName==null){

fileName = "";

}else{

fileName = fileName+".apk";

}

var showNotify = confirm("是否在通知栏显示下载进度");

xbase.download("http://sqdd.myapp.com/myapp/qqteam/tim/down/tim.apk",fileName,'authorities 不为空 如果下载的是apk会自动安装',showNotify,true,123456);

}

}

});

TIM图片20180705212905.jpg

你可能感兴趣的:(android,webview第三方框架)