Android html5和Android之間的交互


今天補充了會昨天的問題,然后搞半天又出現莫名其妙的問題。

今天講的是交互,先說html5在Android的調用。

 

 

 上面的hello world上面的部分都是安卓里的布局

然后按這些布局自動生成代碼。

把那些該監聽的監聽,該調用的調用好,

然后:

 

 

 

 

 

這上面三個監聽就是那三個按鈕,

這幾個都是調用js里面的方法,調用的方法就是

web1.loadUrl("javascript:fun2(\"" + str + "\")");
這就相當於連接了js的代碼,但是前提得允許js的代碼,
web1.getSettings().setJavaScriptEnabled(true);
然后fun2就是在html5里面寫的一個方法:
下面其實可以清晰的看到,寫按鈕得在body里寫,但是監聽得是js寫,注意的是在js里寫的監聽是js與Android交互用得到。

$開頭的就是JQuery的標志,我們得導庫進來。
這句話就是導庫,不過會常常更新,得自己去菜鳥搜JQuery的庫代碼。
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>

 

 

 

 
        

 

 

addJavascriptInterface是WebKit的原生API,屬於WebView對象的公共方法,用於暴露一個java對象給js,使得js可以直接調用方法。當然,java與js的相互調用也離不開loadUrl()方法的配合使用。但是addJavascriptInterface的使用也是有些問題,因為Android平台封裝WebKit內核時,不同的版本中會有些不一致。

 

可以很好的看出,這個其實就是讓html5的js監聽調用Android的東西。

這兩個參數,第一個是自己寫的類,第二個是js調用Android要用的名字。

 

這是下面的內容:

 

 得寫好注解,不然就不能讓js調用我們的Android,

@JavascriptInterface

然后這些方法,就是給在js里寫的那些監聽按鈕用的,就可以和js里的東西交互了。

然后一行行移動代碼的組合鍵 shift+alt+上 / 下

new 一些常用的監聽,好像可以用 ctrl+alt+空格,這個不知道需不需要裝插件Codota,反正我是裝了之后采用的,

 

點第一個按鈕:

那個方法1就是在js里寫的,這邊能輸出,說明可以交互

 

 

 

這是第二個按鈕,我們在輸入框輸入,然后相當於帶參的方法傳入js並輸出

 

 

 

第三個是帶返回值的js方法,我們調用它並返回(兩個字符串的和),其實可以寫兩個數字的和,就得在js返回a*1+b*1,

當時我以為不能的,后面想想,+前后都是數字,那就是加號如果是字符串那就是連接符:

 

 

這個是調用js里的監聽器

 

 

可以看到,監聽成功了,還讓安卓搞了個提示

,后面的都差不多,可以監聽和調用方法,並且還可以發送網絡請求。

ok,完成(今天的麻煩是,每次用這個就會循環一些廢話,挺難受的,而且好像只有我的機子才這樣,我怕我是被嫌棄了。。。)

如果遇到循環的這種情況(百度好像找不到)原因也不曉得,但是該輸出的還是有,但是得自己慢慢找。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM