android webview 开发浏览器壳子后台向前台传递值


当下的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"/>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值