在Work Light Init之后从Native执行JavaScript函数

时间:2013-11-07 13:07:41

标签: javascript android cordova ibm-mobilefirst

我开发了一个Android服务来唤醒Android应用程序(基于Worklight)。应用程序启动后,我必须执行JavaScript函数。 这就是我所做的:

WebView.loadUrl( “JavaScript的:getFirstPosition()”);

问题是JavaScript函数是在加载WebView之前执行的。 所以我需要设置一个像“onPageLoaded”这样的事件监听器来处理这个事件并在此时执行我的函数。 关于如何做这个形式的Android原生语境的任何想法?

3 个答案:

答案 0 :(得分:2)

我通过延迟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);

答案 1 :(得分:0)

请参阅http://developer.android.com/reference/android/webkit/WebViewClient.html#onPageFinished

这可能是你正在寻找的东西(虽然我不理解用例)

答案 2 :(得分:0)

如果我很好理解,你需要监听器在加载WebView时回调你。

试试这个:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    // Your code here
}

也许这可以帮到你:http://docs.phonegap.com/en/1.0.0/phonegap_events_events.md.html