aks*_*728 4 javascript android cordova
我在main活动中使用以下代码,它给出的函数display()没有定义
public class cordovaExample extends DroidGap {
Context mcontext;
private novel n;
private Server s;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new Thread(new Server(this)).start();
try {
Thread.sleep(500);
} catch (InterruptedException e) { }
new Thread(new Client()).start();
super.init();
n = new novel(this, appView);
s = new Server(this,appView);
appView.getSettings().setJavaScriptEnabled(true);
appView.addJavascriptInterface(n, "novel");
appView.addJavascriptInterface(s, "Server");
super.loadUrl("file:///android_asset/www/index.html");
super.loadUrl("javascript:display()");
}
}
Run Code Online (Sandbox Code Playgroud)
在最后一行,它没有定义错误显示()
function display() {
alert("abc");
}
Run Code Online (Sandbox Code Playgroud)
上面的代码显示了我在html文件中使用的显示功能
任何类型的帮助将不胜感激
让Cordova在页面加载时加载JavaScript是一个坏主意.这应该由您的本地JavaScript处理.尝试在HTML页面本身中调用这样的display()函数:
<script>
function display()
{
alert("abc");
}
window.onload = function() {
display();
}
</script>
Run Code Online (Sandbox Code Playgroud)
如果您需要在以后的任何时间从Cordova内部调用JavaScript,可以这样做:
sendJavascript("display();");
Run Code Online (Sandbox Code Playgroud)
要从其他类访问此方法,您需要访问主要活动.简单但可能不安全的方法是在主Activity中创建一个静态变量来保存活动本身.例:
public class MyActivity extends DroidGap {
public static MyActivity activity;
public void onCreate(Bundle savedInstanceState) {
activity = this;
}
}
Run Code Online (Sandbox Code Playgroud)
然后,从您班级的任何地方,执行:
MyActivity.activity.sendJavascript('display();');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6035 次 |
| 最近记录: |