我的第一个Android WebView实例
以前做前端开发的时候,经常遇到需要把H5页面直接在app里面打开的情况,比如论坛、抽奖活动、秒杀活动等,将H5嵌入WebView的做法,可以减少客户端开发,升级等,小功能快速交付上线,但是也有一个问题,调试非常麻烦,在浏览器里面测试没有问题的功能,在WebView里面可能会遇到很多问题。
这里介绍如何开发一个简单的WebView,并打开http://www.baidu.com页面。
1、activity_main.xml配置文件中设计一个WebView控件,控件id为wv。
<?xml version="1.0" encoding="utf-8"?> <WebView android:id="@+id/wv" android:layout_height="match_parent" android:layout_width="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"/>
2、在默认的MainActivity中编写WebView相关的代码。
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //initView(); webView = (WebView)findViewById(R.id.wv); webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setDomStorageEnabled(true); webView.loadUrl("http://www.baidu.com/"); }
3、在AndroidManifest.xml文件中配置uses-permission,一定要加。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.xxx.myandroidapp"> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
最后运行MainActivity.java,连接手机测试。展示baidu H5页面。
如果不在AndroidManifest.xml文件中设置uses-permission,那么就会出现如下图所示的网页无法打开错误。