AgentWeb-Android-H5混合開發
阿新 • • 發佈:2018-12-24
簡介
agentweb 是對webview進行的又一層封裝較為輕量級
所以基本的開發流程大致和webview原理相似
將html5檔案方入asset資料夾下,訪問路徑為
final private String CoachFile = "file:///android_asset/teacher/info-teacher.html";
執行demo
此demo使用了bintray/Jcenter 這個東西
Jcenter:看這個刪除相關部分
[https://blog.csdn.net/u013231041/article/details/70174354]
需要在gradle 中將相關程式碼全部註釋掉或者升級對應gradle 版本才能執行
原生webview-js使用
[https://blog.csdn.net/carson_ho/article/details/64904691]
[https://blog.csdn.net/carson_ho/article/details/52693322]
使用過程
- 整合
- JS-調android
- Android 調 js
官網給出的程式碼片段
Android 調js
function callByAndroid(){
console.log("callByAndroid")
}
//此處為agentweb宣告js方法
mAgentWeb.getJsAccessEntrace().quickCallJs("callByAndroid" );
js調android
//可理解為agentweb註冊interface
mAgentWeb.getJsInterfaceHolder().addJavaObject("android",new AndroidInterface(mAgentWeb,this));
window.android.callAndroid();
AndroidInterface
public class AndroidInterface {
private Handler deliver = new Handler(Looper.getMainLooper());
private AgentWeb agent;
private Context context;
public AndroidInterface(AgentWeb agent, Context context) {
this.agent = agent;
this.context = context;
}
//必須宣告此註解
@JavascriptInterface
public String getToken(final String msg) {
String accessToken=Config.getAccessToken(context);
Log.i("Info", "Thread:" + Thread.currentThread());
return accessToken;
}
@JavascriptInterface
public int getID(){
int id=Config.getUid(context);
Log.d("uid:",""+id);
return id;
}
}
html呼叫部分片段
getLocalData:function(){
if(window.android!=null&&typeof(window.android)!="undefined"){
id=window.android.getID();
alert(" : "+id);
}else{
alert(typeof(window.android));
}
},
對框架的二次封裝
-