import java.io.File;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.widget.EditText;
import android.widget.TextView;
import android.webkit.JsResult;
import android.app.AlertDialog;
import java.io.FileOutputStream;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.webkit.WebChromeClient;
public class MainActivity extends Activity {
private TextView tv ;
private EditText et ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout. activity_main);
tv = (TextView) findViewById(R.id. tv);
et = (EditText) findViewById(R.id. et);
wv = (WebView) findViewById(R.id. wv);
wv.getSettings().setJavaScriptEnabled(true) ;
WebChromeClient client = new WebChromeClient(){
@Override
public boolean onJsAlert(WebView view, String url, String message,
final JsResult result) {
AlertDialog.Builder builer = new Builder(MainActivity.this );
builer.setTitle( "notice");
builer.setMessage(message);
builer.setPositiveButton( "确定", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
});
builer.create();
builer.setCancelable( false);
builer.show();
return true ;
}
};
wv.setWebChromeClient(client);
try {
File file = new File("mnt/sdcard2" , "index.html" );
et.setText( "file://"+file.getAbsolutePath());
et.setSelection( et.getText().length());
FileOutputStream out = new FileOutputStream(file);
byte[] data = "<!DOCTYPE HTML><html><script type='text/javascript'>function haha(){alert('hehe');} </script><body>i believe i can fly!! <br /><button onclick='haha();'>hello</button></body></html>".getBytes();
out.write(data);
out.close();
} catch (Exception e) {
tv.setText(e.getMessage().toString());
}
}
private WebView wv ;
public void open(View view) {
wv.loadUrl( et.getText().toString());
}
}
/*************************activity_main.xml******************************/
<LinearLayout xmlns: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"
tools:context= ".MainActivity" >
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:text="@string/hello_world" />
<EditText
android:id="@+id/et"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dip" />
<Button
android:id="@+id/bt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dip"
android:onClick="open"
android:text="@string/hello_world" />
<WebView
android:id="@+id/wv"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
android中通过WebView处理JavaScript弹出框
最新推荐文章于 2021-07-03 06:46:45 发布