将网页嵌入到android应用中
16lz
2021-01-26
package com.vimi8.app.activity;import android.content.Context;import android.os.Bundle;import android.view.KeyEvent;import android.webkit.JavascriptInterface;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.Toast;import com.vimi8.app.R;import com.vimi8.app.framework.ActivityBase;/** * Created by vimi8 on 2017/4/18. */public class YyxText extends ActivityBase { private WebView myWebView ; @Override protected void initVariables(Bundle savedInstanceState) { } @Override protected int initLayoutViews() { return R.layout.yyx_text; } @Override protected void initViewsAndStaticData() { //获取webview控件 myWebView = (WebView) findViewById(R.id.web_view); //加载服务器上的页面 myWebView.loadUrl("http://www.baidu.com"); //加载本地中的html //myWebView.loadUrl("file:///android_asset/www/test2.html"); //加上下面这段代码可以使网页中的链接不以浏览器的方式打开 myWebView.setWebViewClient(new WebViewClient()); //得到webview设置 WebSettings webSettings = myWebView.getSettings(); //允许使用javascript webSettings.setJavaScriptEnabled(true); //将WebAppInterface于javascript绑定 myWebView.addJavascriptInterface(new WebAppInterface(this), "Android"); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack()) { myWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); } public class WebAppInterface { Context mContext; /** Instantiate the interface and set the context */ WebAppInterface(Context c) { mContext = c; } /** Show a toast from the web page */ @JavascriptInterface public void showToast(String toast) { Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); } }
}
下面是HTML代码
<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />这里调用android中的方法