安卓混合开发,使用WebView控件展示网页
Posted OceanSec
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓混合开发,使用WebView控件展示网页相关的知识,希望对你有一定的参考价值。
页面使用webview控件来实现,WebView是android系统提供能显示网页的系统控件,它是一个特殊的View,他的作用就是
- 显示和渲染Web页面
- 加载网络上或本地assets中的html文件
- 与javascript交互调用
常用于同态变化比较大的页面时使用
第一步:
在AndroidManifest.xml下添加网络访问权限,如果需要外网访问的情况下
<!--网络权限-->
<uses-permission android:name="android.permission.INTERNET" />
<!--文件读写权限-->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
第二步:
在xml下添加WebView控件
<WebView
android:layout_width="match_parent"
android:id="@+id/mywebview"
android:layout_height="match_parent" />
第三步:
把 activity 中的内容复制过去,注意这里是本地加载:把 html 文件保存到了本地 asset 目录中,远程加载的话直接修改 loadUrl 即可
public class MainActivity extends AppCompatActivity
private WebView webv=null;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取到webview控件
WebView webv=findViewById(R.id.mywebview);
WebSettings webSettings = webv.getSettings();
webSettings.setJavaScriptEnabled(true);//设置支持Javascript
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);//允许js弹出窗口
//访问本地资源文件网页
webv.loadUrl("file:///android_asset/index.html");
//通过下面的代码阻止APP直接通过浏览器打开网页
webv.setWebViewClient(new WebViewClient()
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
//使用WebView加载URL内容
view.loadUrl(url);
return true;
);
//如果要实习alert弹框,必须实现此监听事件
webv.setWebChromeClient(new WebChromeClient()
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result)
// TODO Auto-generated method stub
return super.onJsAlert(view, url, message, result);
);
第四步:
创建assets目录
右键【app】-【New】-【Folder】-【Assets Folder】-【finish】
把目录下 test 文件夹内文件全部复制到 assets 目录中
以上是关于安卓混合开发,使用WebView控件展示网页的主要内容,如果未能解决你的问题,请参考以下文章