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