安卓webview实现应用内嵌入网页

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29716061/article/details/51603018

安卓使用webview 嵌入网页有很多的用途,很多应用例如 今日头条等也都是用原生应用嵌入网页方式实现的

好了 同样的 话不多说 贴上代码:

/**
 * Author: wangliu_petter叉哥
 * QQ:1206420658 
 * Date: 16-06-07 
 * Time: 13:21
 */
public void init(){
		WebView mWebView=(WebView) findViewById(R.id.webView1);
		mWebView.getSettings().setDefaultTextEncodingName("utf-8");
        //支持js
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setSavePassword(false);
        mWebView.getSettings().setSaveFormData(false);
        mWebView.getSettings().setSupportZoom(false);
        mWebView.setWebChromeClient(new MyWebChromeClient());
		mWebView.setWebViewClient(new WebViewClient() {
			public void onReceivedError(WebView view, int errorCode,
					String description, String failingUrl) { // Handle the error
			}
			public boolean shouldOverrideUrlLoading(WebView view, String url) {
				view.loadUrl(url);
				return true;
			}
		});   
        //设置背景颜色 透明
        mWebView.setBackgroundColor(Color.argb(0, 0, 0, 0));
        //设置本地调用对象及其接口
        mWebView.addJavascriptInterface(new JavaScriptObject(this), "myObj");
        //载入js
        try {

			mWebView.loadUrl(此处是要加载的Url地址);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
//允许Javascript调用alert
final class MyWebChromeClient extends WebChromeClient {
    @Override
    public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
        
        return super.onJsAlert(view, url, message, result);


下面是 让网页端Javascript调用的函数

package com.example.webview;

import android.content.Context;
import android.util.Log;
import android.webkit.JavascriptInterface;
import android.widget.Toast;

public class JavaScriptObject {
    Context mContxt;

    public JavaScriptObject(Context mContxt) {
        this.mContxt = mContxt;
    }

    @JavascriptInterface
    public void function1(String name) {
        Toast.makeText(mContxt, name, Toast.LENGTH_LONG).show();
    }

    @JavascriptInterface
    public void function2(String name) {
        Toast.makeText(mContxt, "function2:" + name, Toast.LENGTH_SHORT).show();
    }
    
    @JavascriptInterface
	public  int function3(String pkgName){
	 return 0;
	}
}


展开阅读全文

没有更多推荐了,返回首页