AgentWeb-Android-H 5ハイブリッド開発


概要
agentwebはwebviewをカプセル化するもう一つの階層であるため、基本的な開発プロセスは大体webviewの原理と似ているhtml 5ファイルを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));
                      }
    
    
    
                },

    フレームの二次パッケージング
    -