Java 本地HTML文件在Android Webview中无法正常工作
我有一个带有按钮的HTML文件,当我们点击按钮时,按钮会弹出一条警告消息 我放置了HTML文件资源文件夹,它正确加载到emulator,我可以看到按钮,但我面临的问题是,按钮单击没有响应,我看不到弹出消息 我还启用了JavaScript,但结果是否定的。然后,我将警报事件更改为JavaScript代码,但不起作用。在这里我添加我的代码,如果有人能帮助我,我将不胜感激Java 本地HTML文件在Android Webview中无法正常工作,java,android,Java,Android,我有一个带有按钮的HTML文件,当我们点击按钮时,按钮会弹出一条警告消息 我放置了HTML文件资源文件夹,它正确加载到emulator,我可以看到按钮,但我面临的问题是,按钮单击没有响应,我看不到弹出消息 我还启用了JavaScript,但结果是否定的。然后,我将警报事件更改为JavaScript代码,但不起作用。在这里我添加我的代码,如果有人能帮助我,我将不胜感激 public void onCreate(Bundle savedInstanceState) { super.onCr
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(com.example.test.R.layout.activity_main);
myWebView= (WebView) findViewById(com.example.test.R.id.webView1);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.loadUrl("file:///android_asset/myown.html");
}
下面是我的HTML页面代码
<!DOCTYPE html>
<html>
<body>
<button type="button" onclick="alert('Hello world!')">Click Me!</button>
</body>
</html>
点击我!
为此,您需要使用webChromeClient
并覆盖onJsAlert()
函数:
WebView wv=new WebView(this);
wv.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
//Do what you need to after alert is received
return super.onJsAlert(view, url, message, result);
}
编辑>这可能不是最简单的解决方案,但它确实提供了额外的功能 当我创建类似的东西时,它适用于4.1.2。警报弹出了一个漂亮的全息样式的弹出窗口。我使用了一个在线资源和一个(见前面的答案) 然而,若你们想确保这是可行的,你们可能想看看Android开发者的页面。它解释了这个问题。您可以使用它从HTML页面(本地或在线)耦合javascript,但让它执行本地Java代码 你可以像这样使用HTML
<input type="button" value="Click Me!" onClick="showAndroidToast('Hello World!')" />
<script type="text/javascript">
function showAndroidToast(toast) {
Android.showToast(toast);
}
</script>
之后,将此代码添加到您提供的示例中
myWebView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
下面的代码来自我的生产环境并且完全正常工作,我已将
html
文件存储到我的assest
文件夹中,然后将其访问到活动中
代码:
String uri = "file:///android_asset/htmlpages/" + index + ".htm";
WebView wb = (WebView) findViewById(R.id.webView_Glossary);
wb.getSettings().setJavaScriptEnabled(true);
wb.loadUrl(uri);
看看这个,它可能会帮助你[Link1][1][Link2][2][1]:[2]:看看这个,它可能会帮助你[Link1][1][Link2][2][1]:[2]:
String uri = "file:///android_asset/htmlpages/" + index + ".htm";
WebView wb = (WebView) findViewById(R.id.webView_Glossary);
wb.getSettings().setJavaScriptEnabled(true);
wb.loadUrl(uri);