Android webView中调用JavaS…
2013-04-25 17:36
465 查看
原文地址:Android webView中调用JavaScript作者:yyylinuxpackage com.samll.games.pilishaizi;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class PiLiShaiZiActivity extends Activity {
WebView webView;
Handler mHandler = new Handler();
@Override
public void
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//实例化webView
webView = (WebView)findViewById(R.id.webView1);
//设置Web属性,能够执行JavaScript脚本
WebSettings webSettings =
webView.getSettings();
webSettings.setJavaScriptEnabled(true);
//设置可以访问文件
webSettings.setAllowFileAccess(true);
webView.setWebChromeClient(new
WebChromeClient() {
//
处理javascript中的confirm
@Override
public
boolean onJsConfirm(WebView view, String url,
String
message, final JsResult result) {
Builder
builder = new Builder(PiLiShaiZiActivity.this);
;
builder.setMessage(message);
builder.setPositiveButton("确定",
new
AlertDialog.OnClickListener() {
public
void onClick(DialogInterface dialog,
int
which) {
result.confirm();
}
});
builder.setNegativeButton("取消",
new
DialogInterface.OnClickListener() {
public
void onClick(DialogInterface dialog,
int
which) {
result.cancel();
}
});
builder.setCancelable(false);
builder.create();
builder.show();
return
true;
}
});
//设置默认缩放方式尺寸是far
webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
//支持缩放
webSettings.setSupportZoom(true);
// 缩放按钮
// webSettings.setBuiltInZoomControls(true);
//webView.setInitialScale(-1);//为25%,最小缩放等级
//加载Url内容
webView.loadUrl("file:///android_asset/pilishaizi/index.htm");
//设置web视图客户端
webView.setWebViewClient(new HelloWebViewClient());
}
//设置回退
@Override
public boolean onKeyDown(int keyCode, KeyEvent
event) {
if(keyCode==KeyEvent.KEYCODE_BACK){
//弹出确定退出对话框
new
AlertDialog.Builder(this).setTitle("退出").setMessage("确定退出霹雳骰子游戏吗?")
.setPositiveButton("确定",
new OkListener(this))
.setNegativeButton("取消",
new CancelListener(this)).show();
return
true;
}
return super.onKeyDown(keyCode,
event);
}
//Web视图客户端
private class HelloWebViewClient extends
WebViewClient{
@Override
public boolean
shouldOverrideUrlLoading(WebView view, String url) {
// TODO
Auto-generated method stub
view.loadUrl(url);
return
true;
}
}
protected
void onDestroy() {
super.onDestroy();
System.exit(0);
//或者下面这种方式
//android.os.Process.killProcess(android.os.Process.myPid());
}
}
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class PiLiShaiZiActivity extends Activity {
WebView webView;
Handler mHandler = new Handler();
@Override
public void
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//实例化webView
webView = (WebView)findViewById(R.id.webView1);
//设置Web属性,能够执行JavaScript脚本
WebSettings webSettings =
webView.getSettings();
webSettings.setJavaScriptEnabled(true);
//设置可以访问文件
webSettings.setAllowFileAccess(true);
webView.setWebChromeClient(new
WebChromeClient() {
//
处理javascript中的confirm
@Override
public
boolean onJsConfirm(WebView view, String url,
String
message, final JsResult result) {
Builder
builder = new Builder(PiLiShaiZiActivity.this);
;
builder.setMessage(message);
builder.setPositiveButton("确定",
new
AlertDialog.OnClickListener() {
public
void onClick(DialogInterface dialog,
int
which) {
result.confirm();
}
});
builder.setNegativeButton("取消",
new
DialogInterface.OnClickListener() {
public
void onClick(DialogInterface dialog,
int
which) {
result.cancel();
}
});
builder.setCancelable(false);
builder.create();
builder.show();
return
true;
}
});
//设置默认缩放方式尺寸是far
webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.FAR);
//支持缩放
webSettings.setSupportZoom(true);
// 缩放按钮
// webSettings.setBuiltInZoomControls(true);
//webView.setInitialScale(-1);//为25%,最小缩放等级
//加载Url内容
webView.loadUrl("file:///android_asset/pilishaizi/index.htm");
//设置web视图客户端
webView.setWebViewClient(new HelloWebViewClient());
}
//设置回退
@Override
public boolean onKeyDown(int keyCode, KeyEvent
event) {
if(keyCode==KeyEvent.KEYCODE_BACK){
//弹出确定退出对话框
new
AlertDialog.Builder(this).setTitle("退出").setMessage("确定退出霹雳骰子游戏吗?")
.setPositiveButton("确定",
new OkListener(this))
.setNegativeButton("取消",
new CancelListener(this)).show();
return
true;
}
return super.onKeyDown(keyCode,
event);
}
//Web视图客户端
private class HelloWebViewClient extends
WebViewClient{
@Override
public boolean
shouldOverrideUrlLoading(WebView view, String url) {
// TODO
Auto-generated method stub
view.loadUrl(url);
return
true;
}
}
protected
void onDestroy() {
super.onDestroy();
System.exit(0);
//或者下面这种方式
//android.os.Process.killProcess(android.os.Process.myPid());
}
}
相关文章推荐
- Android webView …
- Android WebView的使用
- Android webview调用js代码无效 webView.loadUrl("javascript:alert('hello')")
- 支持android&ios高度自适应及JS相互调用的组件react-native-webview2
- Android WebView的使用
- Android WebView总结
- WebService 创建 发布 调用整个流…
- android webview java调用js方法没反应
- android使用WebView加载html input标签调用手机相机相册 后添加扫码功能
- Android webview调用本地文件选择失败解决
- Android WebView 的缓存机制 & 资源预加载方案
- Android WebView的使用 和 其 的 JS调用
- Android---WebView(网页中文本框调用系统联系人号码)
- Android Webview和JavaScript交互--JS调用Android方法
- android webview加载html图片自适应手机屏幕大小&点击查看大图
- 5.2 Android Basic QuickStart Widgets&Other View Web View
- Xamarin Android Webview中JS调用App中的C#方法
- Android 开源框架ViewPageInd…
- Android:WebView与Javascript交互(相互调用参数、传值)
- Android WebView 和 javaScript的互相调用(二)