簡體   English   中英

BrowserFunction不執行“ JavaScript”代碼

[英]BrowserFunction does not execute “JavaScript ” code

為什么BrowserFunction無法執行我的Javascript代碼?

Java代碼:

public void createBrowserFunctions() {
    new BrowserFunction(mapView_Browser, "appi") {
        public Object function(Object[] arguments) {
            syncCenter((Double) arguments[0], (Double) arguments[1]);
            syncZoom((Double) arguments[2]);
            syncRotation((Double) arguments[3]);
            return null;
        }
    };
}

private void syncCenter(final Double latitude, final Double longitude) {
    LatLng newCenter = new LatLng(latitude.doubleValue(), longitude.doubleValue());
    CENTER = newCenter;
    fireCenterChanged();
}

private void syncZoom(final Double zoom) {
    int newZoom = zoom.intValue();

    if (newZoom != this.ZOOM) {
        this.ZOOM = newZoom;
        fireZoomChanged();
    }
}

private void syncCenter(final Double latitude, final Double longitude) {
    LatLng newCenter = new LatLng(latitude.doubleValue(), longitude.doubleValue());
    CENTER = newCenter;
    fireCenterChanged();
}

JavaScript代碼:

 window._handleBoundsChanged = function() {
  if( !_blockEvents ) {
    appi( 10, 15, 20, 32 );
  }
};

執行時的控制台日志“ _handleBoundsChanged();”

 osgi> !SESSION 2015-07-20 08:34:10.848 ----------------------------------------------- eclipse.buildId=unknown java.version=1.8.0_45 java.vendor=Oracle Corporation BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=pl_PL Command-line arguments: -dev !ENTRY org.eclipse.rap.ui 4 0 2015-07-20 08:34:21.540 !MESSAGE Unhandled event loop exception !STACK 0 org.eclipse.swt.SWTException: Failed to evaluate Javascript expression at org.eclipse.swt.browser.Browser.createException(Browser.java:606) at org.eclipse.swt.browser.Browser.evaluate(Browser.java:344) at hc.tool.mapviewer.rap.OLMap.setZoom(OLMap.java:67) at hc.tool.mapviewer.rap.View$1.widgetSelected(View.java:58) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:262) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:708) at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:610) at org.eclipse.swt.widgets.Display.executeNextEvent(Display.java:1216) at org.eclipse.swt.widgets.Display.runPendingMessages(Display.java:1197) at org.eclipse.swt.widgets.Display.safeReadAndDispatch(Display.java:1180) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:1172) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2733) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2694) at org.eclipse.ui.internal.Workbench.access$5(Workbench.java:2530) at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:701) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:684) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:157) at hc.tool.mapviewer.rap.Application.start(Application.java:18) at org.eclipse.rap.ui.internal.application.EntryPointApplicationWrapper.createUI(EntryPointApplicationWrapper.java:38) at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle.createUI(RWTLifeCycle.java:171) at org.eclipse.rap.rwt.internal.lifecycle.RWTLifeCycle$UIThreadController.run(RWTLifeCycle.java:283) at java.lang.Thread.run(Unknown Source) at org.eclipse.rap.rwt.internal.lifecycle.UIThread.run(UIThread.java:104) 

我渴望將提供的數據從JavaScript轉換為Java。 我指望您的幫助,謝謝。

因此,在OLMap:67之后,評估在Browser:344失敗。 您應該深入研究這兩點,以了解發生了什么。

我敢打賭OLMap:67是您的function(Object []) ,並且最終的原因是您試圖將Object (可能是JSObject )轉換為Java Double而不進行任何類型的轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM