2016-04-27 12 views
0

JavaScriptを使用しています。私はJavaプログラムでgeolocationの機能を使いたいと思っています。これを行う方法がわからないのJavaScriptイムに新しいビーイングGeinoをRhino JavaScriptエンジンで使用することはできますか?

import javax.script.*; 

public class Foo{ 

public static void main(String[] args) throws Exception { 
     ScriptEngineManager factory = new ScriptEngineManager(); 
     ScriptEngine engine = factory.getEngineByName("JavaScript"); 
     engine.eval(new java.io.FileReader(args[0])); 
    } 
} 


はJavaScript

var navigator ={}; 

    var locater = function getLocation() {; 
      if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(showPosition); 
      } 
    }; 
    //tell me how 

    locater(); 

座標を取得して印刷したり、Javaプログラムからアクセスできるようにしたいと考えています。 Javaアプリケーションでコンピュータの場所を取得するために別の方法を使用する必要がある場合は、見つけられないため、方法をお勧めします。

答えて

0

Javaアプリケーションで動作するRhino JavaScriptエンジンは、Webブラウザで動作するJavaScriptエンジンと同じではありません。どちらもJavaScriptを解釈しますが、その "サービス"は違いがある場所です。

ブラウザでは、JavaScriptエンジンがWebサービスに接続して、IPアドレスを緯度経度に変換することがあります。

Javaでは、Rhinoエンジンは、親Javaアプリケーションがエンジンに利用可能にしたリソース(存在する場合)をすべてアクセスできます。

Rhinoで実行されているJavaScriptコードは、現在の場所を取得するために、Rhino環境に与えられたJavaオブジェクトのメソッドを呼び出します。 Javaオブジェクトはどこかに位置を特定し、それを呼び出し側に返します。

あなたのJavaアプリケーションが現在の場所を特定することを目標とする場合、Rhino/JavaScriptを呼び出すことは答えではありません。代わりに、best-way-to-get-geo-location-in-javaのようなライブラリを使用してください。

(必要に応じて、Javaアプリケーションで取得したこの情報をJavaScriptコードで使用するためにRhinoに提示することができます)

関連する問題