当下的android开发从开发周期与后期数据更新的难易度来说,企业都更喜欢使用webview的方式来开发应用。
后台通过将对象转成json,然后传递给前端的html页,前端的html用js来控制整个数据的显示,绑定。ok,闲话不多说,我知道你们在等代码,so do I!
package com.uidesign.minifly;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebView;
import com.uidesign.entity.Person;
import com.uidesign.entityUtil.PersonUtil;
public class HtmlUIDesignActivity extends Activity {
private WebView webView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webView = (WebView)this.findViewById(R.id.webViewId);
webView.loadUrl("file:///android_asset/index.html");
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new ContactObj(), "contact");
//cotact表示在wap页中所用的js对象的名字。
}
private final class ContactObj{
public void showContacts(){ //实现在网页中调用的显示所有的联系人的函数
String json = "";
PersonUtil util = new PersonUtil();
List<Person> list = util.getContactList();
try {
JSONArray jsonArray = new JSONArray();
for(Person p : list){
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", p.getName());
jsonObject.put("count", p.getCount());
jsonObject.put("phone", p.getPhone());
jsonArray.put(jsonObject);
}
json = jsonArray.toString();
} catch (JSONException e) {
e.printStackTrace();
}
webView.loadUrl("javascript:load("+json+")");
//在此处调用页面中已经定义的js函数。将json串传递到前端显示。
}
public void call(String phoneNumber){ //实现在网页中的打电话的操作 在权限列表中应该申明一下的。
Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+phoneNumber));
startActivity(intent);
}
}
}
ok,前台写一个load(obj json)来接数据和将数据显示到相应的位置。
在打电话的操作中,不要忘了还要有权限的设置.
<uses-permission android:name="android.permission.CALL_PHONE"/>