-
第一个页面的效果 点击图片 跳转到第二个页面 长按图片 跳转到第三个页面
WebView wv=findViewById(R.id.wv); //设置webview支持JS交互 wv.getSettings().setJavaScriptEnabled(true); //加载页面 wv.loadUrl("file:///android_asset/infos.html"); //设置弹出alter wv.setWebChromeClient(new WebChromeClient() { @Override public void onReceivedTitle(WebView view, String title) { Log.i("xxx",view.getTitle()); super.onReceivedTitle(view, title); } @Override public boolean onJsAlert(WebView view, String url, String message, JsResult result) { return false; } @Override public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) { return super.onJsPrompt(view, url, message, defaultValue, result); } @Override public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) { callback.invoke(origin,true,false); super.onGeolocationPermissionsShowPrompt(origin, callback); } }); wv.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { view.loadUrl("url"); return true; } }); //js调用的方法 wv.addJavascriptInterface(this,"android");
}
@JavascriptInterface
public void showUserInfo(String name,String pwd)
{
Toast.makeText(this,name+""+pwd,Toast.LENGTH_SHORT).show();;}
第二个页面
第二个页面的代码
WebView wv=findViewById(R.id.wv);
//设置webview支持JS交互
wv.getSettings().setJavaScriptEnabled(true);
//加载页面
wv.loadUrl("file:///android_asset/infos.html");
//设置弹出alter
wv.setWebChromeClient(new WebChromeClient()
{
@Override
public void onReceivedTitle(WebView view, String title) {
Log.i("xxx",view.getTitle());
super.onReceivedTitle(view, title);
}
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return false;
}
@Override
public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
return super.onJsPrompt(view, url, message, defaultValue, result);
}
@Override
public void onGeolocationPermissionsShowPrompt(String origin, GeolocationPermissions.Callback callback) {
callback.invoke(origin,true,false);
super.onGeolocationPermissionsShowPrompt(origin, callback);
}
});
wv.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl("url");
return true;
}
});
//js调用的方法
wv.addJavascriptInterface(this,"android");
}
@JavascriptInterface
public void showUserInfo(String name,String pwd)
{
Toast.makeText(this,name+""+pwd,Toast.LENGTH_SHORT).show();;
}
}
第三个页面
第三个页面的代码
webView = findViewById(R.id.wv);
//得到webSetting
WebSettings settings = webView.getSettings();
//加载页面之前设置支持js交互
settings.setJavaScriptEnabled(true);
//第一种加载本地html页面
webView.loadUrl("file:///android_asset/newsinfo.html");
/*
* android调用js方法
*
* */
webView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
webView.loadUrl("javascript:test1()");
return false;
}
});
/*
* js调用android方法
* 第一步社会支持js调用android方法
* */
webView.addJavascriptInterface(this,"android");
webView.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
webView.setWebChromeClient(new WebChromeClient()
{
@Override
public void onProgressChanged(WebView view, int newProgress) {
super.onProgressChanged(view, newProgress);
}
});
}
//定义一个android方法
@JavascriptInterface
public void toastMassage()
{
Toast.makeText(this,"js调用android方法了",Toast.LENGTH_SHORT).show();;
}
}