1. 程式人生 > >AgentWeb-Android-H5混合開發

AgentWeb-Android-H5混合開發

簡介

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]

使用過程

  1. 整合
  2. JS-調android
  3. 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));
                  }



            },

對框架的二次封裝

-