gpt4 book ai didi

javascript - Android WebView 无法找到 JavaScript 函数

转载 作者:太空狗 更新时间:2023-10-29 12:42:31 26 4
gpt4 key购买 nike

我正在尝试从 android Activity 调用 JS 函数,它在 webview 中加载页面但找不到 JS 函数,该函数在桌面浏览器中工作得很好

这是JAVA代码

为 JS 设置几乎所有的东西

    index = (WebView) findViewById(R.id.edit);
WebSettings Websettings = index.getSettings();
Websettings.setBuiltInZoomControls(true);
Websettings.setSupportZoom(true);
Websettings.setJavaScriptEnabled(true);
Websettings.setBuiltInZoomControls(true);
Websettings.setRenderPriority(RenderPriority.HIGH);
index.getSettings().setPluginState(PluginState.ON);
index.setWebChromeClient(new WebChromeClient());

这是我调用 JS 函数的方式

index.loadUrl("file:///android_asset/demo.html");
index.loadUrl("javascript:getList('"+JsonString+"');");

这里是JS函数

function getList(jString) 
{
alert('function called');
}

这是 LogCat 的内容

04-24 16:44:58.015: E/Web Console(31516): Uncaught ReferenceError: 
getList is not defined:1

更新:解决方案:-

正如 Paul Lammertsma 所说,我没有等待 html 页面完全加载,而是在 webView 中加载 html 页面后调用 JS 函数 rite。所以通过在 onPageFinished 中调用 JS 函数解决了我的问题这对我有用:

index.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
index.loadUrl("javascript:getList('"+JsonString+"');");
}

});

最佳答案

调用loadUrl()是异步的;当您调用它来执行 JavaScript 函数时,JavaScript 可能尚未加载。也许您想在页面加载完成时调用该函数。

关于javascript - Android WebView 无法找到 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23268174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com