虽然网上有无数关于webview的使用方法,但我还是要记录一下,以便日后自己查阅。
想要链接网络,首先要添加permission。
<uses-permission android:name="android.permission.INTERNET" />
2. 要在添加的layout中设置webview标签,我是在一个fragment中创建了webview标签。
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</WebView>
3. 在Fragment中定义并且实现webview。
private WebView mWebView;
private ImageButton mBackImage;
private ImageButton mForwardImage;
private ImageButton mReload;
//在fragment的onCreateView中初始化WebView
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_web_view, container, false);
mWebView = (WebView) view.findViewById(R.id.webview);
mWebView.setWebViewClient(mWebClient); 设置自定义WebViewClient
mWebView.getSettings().setJavaScriptEnabled(true);
mBackImage = (ImageButton) view.findViewById(R.id.btn_webview_back);
mBackImage.setOnClickListener(mOnClickListener);
mForwardImage = (ImageButton) view.findViewById(R.id.btn_webview_forward);
mForwardImage.setOnClickListener(mOnClickListener);
mReload = (ImageButton) view.findViewById(R.id.btn_webview_reload);
mReload.setOnClickListener(mOnClickListener);
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
Bundle args = getArguments();
if (args == null) {
return;
}
String url = args.getString(KEY_URL);
if (url != null) {
mWebView.loadUrl(args.getString(KEY_URL));
} else {
String contents = args.getString(KEY_CONTENTS);
mWebView.loadData(contents, "text/html; charset=utf-8", "utf-8");
}
}
//自定义mWebClient
private WebViewClient mWebClient = new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false; //返回false,在当前webview中处理url,返回true,系统通过默认浏览器处理url
}
@Override
public void onPageFinished(WebView view, String url) {
//设置导航键是否高亮
mBackImage.setEnabled(mWebView.canGoBack());
mForwardImage.setEnabled(mWebView.canGoForward());
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
}
};
//设置导航键动作
private View.OnClickListener mOnClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_webview_back:
mWebView.goBack();
break;
case R.id.btn_webview_forward:
mWebView.goForward();
break;
case R.id.btn_webview_reload:
mWebView.reload();
break;
}
}
};
以上,最基本的webiew就可以使用了。