安卓使用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;
}
}