android内嵌H5页面

本教程目的:
使用安卓app外壳内嵌H5网页,使其能够正常浏览

流程:

新建项目–MainActivity中放入一个WebView–WebView加载主页

新建项目:
右键左侧空白>new project>android>android application project,

MainActivity中放入一个WebView
1.修改activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context="com.example.uitest2.MainActivity" >

    <WebView
        android:id="@+id/webView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"/>

</RelativeLayout>

2.WebView加载主页
修改MainActivity.java
最终代码如下

import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends ActionBarActivity {

    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        webView = (WebView) findViewById(R.id.webView);
      //覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开  
        webView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
        webView.loadUrl("http://www.qq.com//");
    }
}

3.修改功能清单文件 manifests/AndroidManifest.xml
在application节点前加入联网权限的声明:

<!-- 联网权限 -->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

4.修改application结点的android:theme属性,去掉activity的头

android:theme="@style/Theme.AppCompat.Light.NoActionBar"

至此我们的基本功能都做完了,可以运行进行测试

遇见的问题

  • 提示网页无法打开,因为net::ERR_CACHE_MISS

    这是因为没有声明联网权限的缘故,很好解决,
    修改功能清单文件
    在application节点前加入联网权限的声明:

<!--     联网权限 -->
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
  • activity有个很丑的title之类的头部
    如何去掉Activity的标题
    百度的时候大家都会提到三种方法
    1是在setContentView之前加上requestWindowFeature(Window.FEATURE_NO_TITLE); 但我这里并没有用
    2是在AndroidManifest.xml中配置application结点的 android:theme属性 但是 android:theme="@android:style/Theme.NoTitleBar" 这个写法是比较老旧的,这种方式异动是程序总是崩溃,原因,升级后theme是由appcompat_v7管理 所以这里theme应该采用android:theme=@style/Theme.AppCompat.Light.NoActionBar”
    所以最终的解决方案是
    修改application结点的android:theme属性,去掉activity的头
android:theme="@style/Theme.AppCompat.Light.NoActionBar"
  • 点击WebView的链接,默认通过自带的浏览器打开页面
//覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开  
        webView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });

猜你喜欢

转载自blog.csdn.net/kongcheng_001/article/details/80725414