在 Worklight Init 之后从本机执行 JavaScript 函数



我开发了一个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

最新更新