android WebView onJsAler onJsC…
2012-12-11 16:24
295 查看
package com.html;
import com.sqlite.Dao.NcpRegisterDAO;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.widget.Toast;
public class Register_protocolActivity extends Activity {
privateHandler mHandler = new Handler();
privateWebView mWebView;
privateNcpRegisterDAO dao = null;
public voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//踩上一脚,记录有了就知道复位的时候要去哪里
dao = new NcpRegisterDAO(Register_protocolActivity.this);
String name = "MainActivity";
dao.add_Stepped(name);
//隐藏标题栏
//requestWindowFeature(Window.FEATURE_NO_TITLE);
//隐藏状态栏
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
//该ACTIVITY不需要layout设置,所以直接指向MainActivity的main
setContentView(R.layout.protocol);
//将WebView实例化
mWebView = (WebView) this.findViewById(R.id.webView);
//WebView打开权限
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mWebView.getSettings().setJavaScriptEnabled(true);
//WebView,SWF文件运行权限
mWebView.getSettings().setPluginsEnabled(true);
mWebView.addJavascriptInterface(new Action(), "ncp");
mWebView.loadUrl("file:///android_asset/protocol.html");
// 创建WebViewChromeClient
WebChromeClient wvcc = new WebChromeClient() {
// 处理Alert事件
public boolean onJsAlert(WebView view, String url, String message,final JsResult result) {
// 构建一个Builder来显示网页中的alert对话框
Builder builder = newBuilder(Register_protocolActivity.this);
builder.setTitle("计算1+2的值");
builder.setMessage(message);
builder.setPositiveButton(android.R.string.ok, newAlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
});
builder.setCancelable(false);
builder.create();
builder.show();
return true;
}
// 处理Confirm事件
public boolean onJsConfirm(WebView view, String url, Stringmessage, final JsResult result) {
Builder builder = newBuilder(Register_protocolActivity.this);
builder.setTitle("退出确认");
builder.setMessage(message);
builder.setPositiveButton(android.R.string.ok, newAlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//result.confirm();
//从协义开始到发送注册信息,这些步骤退出后直接清零复位表,不然如果非正常关机后再重启会再次进入该页
dao.Clear_NcpStep_Set0();
finish();
}
});
builder.setNeutralButton(android.R.string.cancel, newAlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
result.cancel();
}
});
builder.setCancelable(false);
builder.create();
builder.show();
return true;
}
};
//设置setWebChromeClient对象
mWebView.setWebChromeClient(wvcc);
}
final classAction {
Action() {
}
public void clickOnAndroid_register() {
mHandler.post(new Runnable() {
public void run() {
//mWebView.loadUrl("javascript:wave()");
Toast.makeText(getBaseContext(), "欢迎进入注册!",Toast.LENGTH_SHORT).show();
//Intent intent = newIntent(MainActivity.this,Register.class);
Intent intent = newIntent(Register_protocolActivity.this,Register_IDcard.class);
Register_protocolActivity.this.startActivity(intent);
//设置切换动画,从右边进入,左边退出
overridePendingTransition(R.xml.in_from_right,R.xml.out_to_left);
}
});
}
public void clickOnAndroid_quit() {
mHandler.post(new Runnable() {
public void run() {
finish();
}
});
}
}
//禁止回退
public voidonBackPressed() {
// TODO Auto-generated method stub
return;
//super.onBackPressed();
}
@Override
protectedvoid onStop() {
super.onStop();
System.out.println("onStop!!");
finish();
// The activity is no longer visible (it is now "stopped")
}
}
import com.sqlite.Dao.NcpRegisterDAO;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.webkit.JsResult;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.widget.Toast;
public class Register_protocolActivity extends Activity {
privateHandler mHandler = new Handler();
privateWebView mWebView;
privateNcpRegisterDAO dao = null;
public voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//踩上一脚,记录有了就知道复位的时候要去哪里
dao = new NcpRegisterDAO(Register_protocolActivity.this);
String name = "MainActivity";
dao.add_Stepped(name);
//隐藏标题栏
//requestWindowFeature(Window.FEATURE_NO_TITLE);
//隐藏状态栏
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
//该ACTIVITY不需要layout设置,所以直接指向MainActivity的main
setContentView(R.layout.protocol);
//将WebView实例化
mWebView = (WebView) this.findViewById(R.id.webView);
//WebView打开权限
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
mWebView.getSettings().setJavaScriptEnabled(true);
//WebView,SWF文件运行权限
mWebView.getSettings().setPluginsEnabled(true);
mWebView.addJavascriptInterface(new Action(), "ncp");
mWebView.loadUrl("file:///android_asset/protocol.html");
// 创建WebViewChromeClient
WebChromeClient wvcc = new WebChromeClient() {
// 处理Alert事件
public boolean onJsAlert(WebView view, String url, String message,final JsResult result) {
// 构建一个Builder来显示网页中的alert对话框
Builder builder = newBuilder(Register_protocolActivity.this);
builder.setTitle("计算1+2的值");
builder.setMessage(message);
builder.setPositiveButton(android.R.string.ok, newAlertDialog.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
});
builder.setCancelable(false);
builder.create();
builder.show();
return true;
}
// 处理Confirm事件
public boolean onJsConfirm(WebView view, String url, Stringmessage, final JsResult result) {
Builder builder = newBuilder(Register_protocolActivity.this);
builder.setTitle("退出确认");
builder.setMessage(message);
builder.setPositiveButton(android.R.string.ok, newAlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//result.confirm();
//从协义开始到发送注册信息,这些步骤退出后直接清零复位表,不然如果非正常关机后再重启会再次进入该页
dao.Clear_NcpStep_Set0();
finish();
}
});
builder.setNeutralButton(android.R.string.cancel, newAlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
result.cancel();
}
});
builder.setCancelable(false);
builder.create();
builder.show();
return true;
}
};
//设置setWebChromeClient对象
mWebView.setWebChromeClient(wvcc);
}
final classAction {
Action() {
}
public void clickOnAndroid_register() {
mHandler.post(new Runnable() {
public void run() {
//mWebView.loadUrl("javascript:wave()");
Toast.makeText(getBaseContext(), "欢迎进入注册!",Toast.LENGTH_SHORT).show();
//Intent intent = newIntent(MainActivity.this,Register.class);
Intent intent = newIntent(Register_protocolActivity.this,Register_IDcard.class);
Register_protocolActivity.this.startActivity(intent);
//设置切换动画,从右边进入,左边退出
overridePendingTransition(R.xml.in_from_right,R.xml.out_to_left);
}
});
}
public void clickOnAndroid_quit() {
mHandler.post(new Runnable() {
public void run() {
finish();
}
});
}
}
//禁止回退
public voidonBackPressed() {
// TODO Auto-generated method stub
return;
//super.onBackPressed();
}
@Override
protectedvoid onStop() {
super.onStop();
System.out.println("onStop!!");
finish();
// The activity is no longer visible (it is now "stopped")
}
}
相关文章推荐
- android WebView onJsAler onJsC…
- [Android] 获取WebView的页面标题(Title)-----WebChromeClient.onReceivedTitle()方法的重写
- Preserving the state of an Android WebView on screen orientation change
- Displaying Charts on Android with WebView
- Android WebView访问SSL证书网页(onReceivedSslError)
- Android硬件加速以及【WebView】的onPause,onResume,OnDestroy
- Android WebView onReceivedTitle 方法不被调用的问题
- android webview onJsAlert只调用一次的问题,并且页面卡死的问题
- android webview onJsAlert 注意事项
- 【Android基础】获取WebView的页面标题(Title)-----WebChromeClient.onReceivedTitle()方法的重写
- Android Webview的使用中,onPageFinished方法和onReceivedError方法,onPageFinished在4.4版本会被多次执行的问题
- Android 在使用webview报错 A WebView method was called on thread 'Thread-2599'
- android 基于jsBridge实现js交互时对webview监听onPageStarted及onPageFinished
- Android异常解决--A WebView method was called on thread 'JavaBridge'. All WebView methods must be called
- android开发 WebViewjava.lang.Throwable: A WebView method was called on thread 'JavaBridge'. All WebVie
- android4.1 JELLY_BEAN:All WebView methods must be called on the same thread[问题已解决]
- android WebView onJsAlert onJsConfirm
- Chromium on Android: 认识Chromium WebView
- [Android] 获取WebView的页面标题(Title)-----WebChromeClient.onReceivedTitle()方法的重写
- android WebView onJsAlert onJsConfirm