我已经制作了一个简单的Web应用程序的高级功能原型,并且延迟已经将其推向了"实时"的位置.
目前,它只是使用JavaScript的localStorage工具来跟踪发生的事情,但由于偏执,我们不希望它被破坏导致数据丢失(它肯定感觉有点粗略,从不与服务器通信).
Firefox在哪里保留其localStorage数据库(我认为它是SQLite,但我找不到它)?
我想让我的Android应用程序调用一个用javascript编写的函数,并期望从中获得返回值.
我知道WebView.loadUrl是异步工作的,所以我现在要做的就是让javascript在完成后通知我的android应用程序,并通过使用javascriptinterface调用java函数传递返回值.
我想知道是否有更好的方法来做这个以及是否有人注意到javascript和android之间的任何消息丢失.
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Main();
}
public void Main()
{
_linearLayout = new LinearLayout(this);
_webview = new WebView(this);
_linearLayout.addView(_webview, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
setContentView(_linearLayout);
_webview.getSettings().setJavaScriptEnabled(true);
_webview.getSettings().setPluginsEnabled(true);
_webview.getSettings().setAllowFileAccess(true);
_webview.setWebChromeClient(new WebChromeClient());
_webview.addJavascriptInterface(this, "Question");
_webview.loadData(GetHTML(), "text/html", "utf-8");
}
public String GetHTML()
{
String HTML = ""
+ "<HTML>"
+ "<HEAD>"
+ "<TITLE>Radio Button onClick Handler</TITLE>"
+ "<SCRIPT LANGUAGE=\"JavaScript\">"
+"function function1(colors) {"
+"var col = (colors.options[colors.selectedIndex].value);"
+" if (col) {"
+" document.bgColor = col;"
+" } "
+"</script>" …Run Code Online (Sandbox Code Playgroud)