我开发了一个Android服务来唤醒Android应用程序(基于Worklight)。 应用程序启动后,我必须执行一个JavaScript函数。这就是我所做的:
WebView.loadUrl("javascript:getFirstPosition()");
问题是JavaScript函数是在加载WebView之前执行的。所以我需要设置一个像"onPageLoaded"这样的事件侦听器来处理这个事件并在此时执行我的函数。关于如何从安卓原生上下文中做到这一点的任何想法?
我通过延迟JavaScript函数的调用解决了这个问题,这是我做的:
ScheduledExecutorService scheduleTaskExecutor = Executors.newSingleThreadScheduledExecutor();
scheduleTaskExecutor.schedule(new Runnable() {
@Override
public void run () {
// execute Worklight Trigger function and start up acquisition process
WebView.loadUrl("javascript:getFirstPosition()");().getString(BROADCAST_TAG)+")");
}
}, 3000, TimeUnit.MILLISECONDS);
请参阅 http://developer.android.com/reference/android/webkit/WebViewClient.html#onPageFinished
这可能是您正在寻找的(尽管我不了解用例)
如果我很好地理解,您需要侦听器在加载 WebView 时回调您。
试试这个:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
// Your code here
}
也许这可以帮助您:http://docs.phonegap.com/en/1.0.0/phonegap_events_events.md.html