日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中WebView加载本地Html,与JavaScript与Android方法相互传值(续)...

發布時間:2025/3/17 Android 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中WebView加载本地Html,与JavaScript与Android方法相互传值(续)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u010046908/article/details/51809558

接著上篇Android中WebView加載本地Html,與JavaScript與Android方法相互傳值,今天來一篇續集,為什么要來續集呢,感覺自己還有沒有交代完的部分,于是在這里再次交代一下,在Android中我們需要將給復雜的數據傳到Html頁面,我們該怎么做?

大家作為一直搞android或IOS的小伙伴們,有好多對Html都了解不是太多,于是思考了一番,無非就是向Html頁面傳值嗎?我就只會傳字符串等基本的數據類型,遇到像List或Map中多層嵌套的復雜數據我該怎么辦?我只會字符串,我只會字符串,我只會字符串,于是我是想到了JSON,JSON作為數據交換的一種方式,我是該選擇JSON字符串來幫我完成復雜的數據交換,是因為Android或JavaScript中都JSON轉換的方法,能夠方便的數據轉換。

上面我已經把問題拋了出來問題,解決的方法也已經給出。下面來一個簡單的例子來說明一下實現方法。

案例說明,我要將一個List傳到頁面做一個表格,就這么簡單。

1.創建一個Person對象

package com.lidong.androiddemo;/*** Created by lidong on 16/7/2*/ public class Person {public String name;public String age;public String uint;public Person(String name, String age, String uint) {this.name = name;this.age = age;this.uint = uint;} }

2.創建MyObeject

package com.lidong.androiddemo;import android.content.Context; import android.util.Log; import android.webkit.JavascriptInterface;import com.google.gson.Gson;import java.util.ArrayList; import java.util.List;/*** Created by lidong on 16/6/29.*/ public class MyObject {public static final String TAG = MyObject.class.getSimpleName() ;private Context mContext;private String data;public MyObject(Context c,String data){this.data = data;mContext = c;}/*** 獲取person字符串傳Html* @return*/@JavascriptInterfacepublic String getData(){List<Person> mlist = new ArrayList<>();for (int i = 0; i <10 ; i++) {mlist.add(new Person("Li"+i,i+"","com"+i));}Gson gson = new Gson();String d = gson.toJson(mlist);Log.d(TAG, "getData: dddd"+d);return d;}}

3.MainActivity的實現

public class MainActivity extends AppCompatActivity {private static final String TAG = MainActivity.class.getSimpleName();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);WebView webView = (WebView) findViewById(R.id.webView);WebSettings settings = webView.getSettings();//調用WebView關聯的WebSettings中setJavaScriptEnable(true)方法。settings.setJavaScriptEnabled(true);webView.loadUrl("file:///android_asset/index.html");//調用WebView關聯的WebSettings中addJavaScriptInterfacewebView.addJavascriptInterface(new MyObject(this,"dd"),"my");} }

4.index.html的實現

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>測試Android Json傳值</title><script src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"></script><script src="http://cdn.hcharts.cn/highcharts/highcharts.js"></script><script type="text/javascript"> $(function(){//通過暴露的my對象來獲取數據var data = my.getData();//將json字符串轉換為數組var f = eval(data);//向表格填充數據 for(var i = 0;i<f.length;i++){var en = f[i];$("table").append("<tr><td>"+en.age+"</td><td>"+en.name+"</td><td>"+en.uint+"</td></tr>");}});</script> </head> <body> 人員表 <div ><table id="table" border="1" bgcolor="#ffddff"></table> </div> </body> </html>

這個案例基本上就四個步驟,通過這篇文章的學習媽媽在也不會擔心android向html傳復雜的數據了,謝謝學習

總結

以上是生活随笔為你收集整理的Android中WebView加载本地Html,与JavaScript与Android方法相互传值(续)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。