XBaseBrowserActivity可以用于H5應(yīng)用加載,簡(jiǎn)易的瀏覽器,webApp等。
遇到問題看看這個(gè)
http://www.itdecent.cn/p/b860db002c5f
打開網(wǎng)頁
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)//是否顯示標(biāo)題欄
.add(XBaseBrowserActivity.SHOW_REFRESH,false)//是否可以下拉刷新
.add(XBaseBrowserActivity.STATUS_COLOR,R.color.main_color)//設(shè)置狀態(tài)欄顏色,默認(rèn)是藍(lán)色
.add(XBaseBrowserActivity.START_CACHE,true)//是否開啟緩存
.startActivity(this,XBaseBrowserActivity.class);
JS交互
直接可在h5網(wǎng)頁中寫入以下方法。
| JS方法 | 參數(shù) | 返回 | 備注 |
|---|---|---|---|
| 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 | 參數(shù)見演示 | 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()參數(shù) |
| getIntExtra | string,int | void | xbase.getIntExtra('ggg',-1);//獲取getIntent()參數(shù) |
| getStringExtra | void | string | xbase.getStringExtra('hh'); |
JS對(duì)應(yīng)接口如下。傳參請(qǐng)務(wù)必意義對(duì)應(yīng)。js方法必須加上xbase.xxx();
package com.hengyi.baseandroidcore.browser;
/**
* Created:2018/8/11
* Time:0:16
* Author:dongzp
* Email:90fanhua@gmail.com
* 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);
//關(guān)閉當(dāng)前界面
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技術(shù),如果您還不會(huì)。請(qǐng)先熟悉。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<title>XBaseAndroid內(nèi)部網(wǎng)頁</title>
<script src="../resources/js/vue.min.js"></script>
<script type="text/javascript">
//xbase.toast("我是網(wǎng)頁,我調(diào)用的安卓原生的信息");
</script>
<style>
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%;
}
</style>
</head>
<body>
<div id="app">
<header>XBaseAndroid</header>
<div class="content">
XBaseAndroid一款集成了網(wǎng)絡(luò)請(qǐng)求,本地緩存,配置文件,數(shù)據(jù)庫映射,權(quán)限申請(qǐng),鏈表管理Activity,簡(jiǎn)化Activity、Service、Broadcast啟動(dòng), 萬能ListView,GridView適配器、高仿IOS彈窗、倒計(jì)時(shí)/延遲執(zhí)行,標(biāo)題欄組件,圖片顯示,webview引擎,APP更新組件,APP崩潰日志組件,線程池組件,視頻播放器,三級(jí)地址選擇,熱更新組件
</div>
<button v-on:click="btn_showloading">顯示Loading</button>
<button v-on:click="btn_close">關(guān)閉當(dāng)前界面</button>
<button v-on:click="btn_kill">關(guān)閉整個(gè)應(yīng)用</button>
<button v-on:click="btn_get">發(fā)送get請(qǐng)求</button>
<button v-on:click="btn_post">發(fā)送post請(qǐng)求</button>
<button v-on:click="btn_alert">alert彈窗</button>
<button v-on:click="btn_confirm">confirm彈窗</button>
<button v-on:click="btn_prompt">prompt彈窗</button>
<button v-on:click="btn_notification">發(fā)送通知</button>
<button v-on:click="btn_activity">打開Activity</button>
<button v-on:click="btn_params">獲取當(dāng)前Activity intent參數(shù)</button>
<button v-on:click="btn_download" v-text="downloadText"></button>
</div>
<script>
var vue = null;
/**
* 1參數(shù) 是否請(qǐng)求成功
* 2參數(shù) 請(qǐng)求tag
* 3參數(shù) notifyId 唯一標(biāo)識(shí)符
*/
function httpCallback(status,tag,notifyId,response){
alert(status+","+ tag +"," + notifyId +","+ response );
xbase.closeLoading();
}
/**
* 文件下載進(jìn)度條回調(diào)
*/
function downloadProgressBar(progress,progress2,speed,notifyId){
vue.downloadText = "演示下載文件 當(dāng)前網(wǎng)速:" + speed +" 下載:" + progress;
}
/**
* 文件路徑回調(diào)
*/
function downloadSuccess(filename,notifyId){
}
/**
* 下載文件開始
*/
function downloadStart(notifyId){
}
/**
* 下載錯(cuò)誤回調(diào) message為錯(cuò)誤信息
*/
function downloadError(message,notifyId){
}
/**
* 保存路徑回調(diào)
*/
function downloadFinish(savePath,notifyId){
}
vue = new Vue({
el:"#app",
data:{
"downloadText":"演示下載文件",
},
created:function(){
xbase.toast("當(dāng)前網(wǎng)絡(luò)狀態(tài):" + 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("正在請(qǐng)求中");
xbase.doGet("http://api.cleveriip.com/","123",9000);
},
"btn_post":function(){
xbase.showLoading("正在請(qǐng)求中");
xbase.doPost("http://api.cleveriip.com",JSON.stringify({name:"123","age":21}),"123",8000);
},
"btn_alert":function(){
alert("彈窗");
},
"btn_confirm":function(){
var res = confirm("你是安卓開發(fā)工程師嗎");
alert(res);
},
"btn_prompt":function(){
var info = prompt("請(qǐng)輸入您的姓名");
alert("您輸入的姓名是:" + info);
},
"btn_notification":function(){
xbase.showNotification("head","drawable","com.hengyi.baseandroiddemo.MainActivity","您有一個(gè)通知","溫馨提示","您正在使用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("當(dāng)前是否開啟緩存:" + res);
},
"btn_download":function(){
var fileName = prompt("請(qǐng)輸入保存的文件名");
if(fileName == "null" || fileName==null){
fileName = "";
}else{
fileName = fileName+".apk";
}
var showNotify = confirm("是否在通知欄顯示下載進(jìn)度");
xbase.download("http://sqdd.myapp.com/myapp/qqteam/tim/down/tim.apk",fileName,'authorities 不為空 如果下載的是apk會(huì)自動(dòng)安裝',showNotify,true,123456);
}
}
});
</script>
</body>
</html>

TIM圖片20180705212905.jpg