gpt4 book ai didi

javascript - Uncaught ReferenceError : myFunction is not defined at null:1 Android exception in webview

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:23:30 24 4
gpt4 key购买 nike

我正在从一个 Activity 中调用 javascript 函数,但我收到了 Uncaught ReferenceError: myFunction is not defined at null:1 错误。这是我的文件

主 Activity .java

package com.example.androidexample;

import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

WebView webview = (WebView)this.findViewById(R.id.webView1);
WebSettings webSettings = webview.getSettings();

// Enable Javascript for interaction
webSettings.setJavaScriptEnabled(true);

// Make the zoom controls visible
webSettings.setBuiltInZoomControls(true);

// Allow for touching selecting/deselecting data series
webview.requestFocusFromTouch();

// Set the client
webview.setWebViewClient(new WebViewClient());
webview.setWebChromeClient(new WebChromeClient());


//webview.loadUrl("file:///android_asset/test.html");

/*String str = "<books>" +
"<book title=\"A Tale of Two Cities\"/>" +
"<book title=\"1984\"/>" +
"</books>";*/




webview.loadUrl("file:///android_asset/test.html");
webview.loadUrl("javascript:myFunction()");
//webview.loadUrl("javascript:myFunction("+str+")");

}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}

测试.html

<html>
<body>
<script type="text/javascript" src="marknote.js"></script>
<script type="text/javascript">
function myFunction()
{
var str = '<books><book></book></books>';
var parser = new marknote.Parser();
var doc = parser.parse(str);

var bookEls = doc.getRootElement().getChildElements();

for (var i=0; i<bookEls.length; i++) {
var bookEl = bookEls[i];

alert("Element name is " + bookEl.getName());
}
}
</script>

</body>
</html>

我在使用 webview.loadUrl("javascript:myFunction()"); 时发现了这个错误。我想从 java 传递一个 xml 字符串并将其解析为 javascript。请帮助我找到解决方案。

最佳答案

你应该在页面加载时执行javascript

webview.setWebViewClient(new WebViewClient(){
public void onPageFinished(WebView view, String url){
webview.loadUrl("javascript:myFunction()");
}
});

代码将被执行并找到您的 javascript 函数。你现在的做法是不等待。

关于javascript - Uncaught ReferenceError : myFunction is not defined at null:1 Android exception in webview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17633930/

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