Android webview加载url

来源:互联网 发布:茵曼淘宝网店 编辑:程序博客网 时间:2024/06/09 19:10

第一次自己写技术博客,有哪里不好的请谅解

首先写布局

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >

    <!--加载时进度条 -->

    <ProgressBar

        android:id="@+id/progress_bar"

        style="?android:progressBarStyleHorizontal"

        android:layout_width="fill_parent"

        android:layout_height="@dimen/activity_margin5"

        android:max="100"

        android:progress="0"

        android:progressDrawable="@drawable/progress_horizontal_img"

        android:visibility="gone"/>

    <WebView

        android:id="@+id/wv"

        android:layout_width="fill_parent"

        android:layout_height="fill_parent"

        android:fadeScrollbars="true"

        android:scrollbarStyle="insideOverlay"

        android:scrollbars="none"/>

</LinearLayout>


progress_horizontal_img.xml

<?xmlversion="1.0"encoding="UTF-8"?>

<layer-listxmlns:android="http://schemas.android.com/apk/res/android">

    <item

        android:id="@android:id/background"

        android:drawable="@drawable/progress_background"/><!--初始时的图片-->

    <itemandroid:id="@android:id/progress">

        <clipandroid:drawable="@drawable/progress_normal"/> <!--加载的图片-->

    </item>


</layer-list>


Activity中:

private ProgressBar mProgressBar = null;

private WebViewmWebView;

private String url = "http://www.baidu.com";


调用显示

private void initWebView() {

        mWebView = (WebView) findViewById(R.id.wv);

mProgressBar = (ProgressBar) findViewById(R.id.progress_bar);

// 设置支持JavaScript脚本

WebSettings webSettings =mWebView.getSettings();

webSettings.setJavaScriptEnabled(true);

// 设置可以访问文件

webSettings.setAllowFileAccess(true);

// 设置可以支持缩放

webSettings.setSupportZoom(true);

// 设置默认缩放方式尺寸是far

webSettings.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);

// 设置出现缩放工具

webSettings.setBuiltInZoomControls(false);

webSettings.setDefaultFontSize(20);

//加载网址

mWebView.loadUrl(url);

//加载html的字符串

mWebView.loadDataWithBaseURL(URLFactory.BANK_PAY_URL, htmlStr,"text/html", "UTF-8", null);


// 设置WebViewClient

mWebView.setWebViewClient(new WebViewClient() {

// url拦截

@Override

public boolean shouldOverrideUrlLoading(WebView view, Stringurl) {

// 使用自己的WebView组件来响应Url加载事件,而不是使用默认浏览器器加载页面

view.loadUrl(url);

// 相应完成返回true

returntrue;

// return super.shouldOverrideUrlLoading(view,url);

}


// 页面开始加载

@Override

public void onPageStarted(WebView view, Stringurl, Bitmapfavicon) {

mProgressBar.setVisibility(View.VISIBLE);

super.onPageStarted(view,url,favicon);

}


// 页面加载完成

@Override

public void onPageFinished(WebView view, Stringurl) {

mProgressBar.setVisibility(View.GONE);

super.onPageFinished(view,url);

}


// WebView加载的所有资源url

@Override

public void onLoadResource(WebView view, Stringurl) {

super.onLoadResource(view,url);

}


@Override

public void onReceivedError(WebView view, int errorCode,

String description, StringfailingUrl) {

super.onReceivedError(view,errorCode,description,failingUrl);

}

});


// 设置WebChromeClient

mWebView.setWebChromeClient(new WebChromeClient() {

@Override

// 处理javascript中的alert

public boolean onJsAlert(WebView view, String url, String message,

final JsResultresult) {

return super.onJsAlert(view, url, message, result);

};


@Override

// 处理javascript中的confirm

public boolean onJsConfirm(WebView view, Stringurl,

String message,final JsResultresult) {

return super.onJsConfirm(view, url, message, result);

};


@Override

// 处理javascript中的prompt

public boolean onJsPrompt(WebView view, Stringurl, Stringmessage,

String defaultValue,final JsPromptResultresult) {

returnsuper.onJsPrompt(view,url,message,defaultValue,

result);

};

// 设置网页加载的进度条

@Override

public void onProgressChanged(WebView view, int newProgress) {

mProgressBar.setProgress(newProgress);

super.onProgressChanged(view,newProgress);

}

// 设置程序的Title

@Override

public void onReceivedTitle(WebView view, Stringtitle) {

super.onReceivedTitle(view,title);

}

});

}


最后记得加上配置文件






0 0
原创粉丝点击