2012-11-26 3 views
1

jQuery Mobile 및 PhoneGap으로 Android 앱을 개발 중입니다. 이것은 나의 활동 :jquery mobile 및 phonegap addJavascriptInterface

public class xxx extends DroidGap { 
    /** Called when the activity is first created. */ 
    private String FILENAME = ""; 
    private static final String HTML_ROOT = "file:///android_asset/www/"; 
    private Handler handler = null; 
    private static WebView webView = null; 
    public MyTeam team = null; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    super.init(); 
    handler = new Handler(); 
    FILENAME = getString(R.string.fileName); 
    //parsing data from file 
    String json = readFile(); 
    team = parseJson(json); 
    appView.addJavascriptInterface(this, "MyTeam"); 
    super.loadUrl("file:///android_asset/www/menu.html"); 
    } 
    public String HW(){ 
    return team.getTeamName(); 
    } 

그리고 이것은 menu.html 내 자바 스크립트 코드 :

$(document).ready(function(){ 
    alert(MyTeam.HW()); // work perfectly 
    alert("name "+MyTeam.team.getTeamName()); //doesn't work! 
}); 

그래서 문제가 :

  • 나는 나를 반환 HW 기능에 액세스 할 수 있습니다 team.getTeamName();
  • MyTeam.team.getTeamName()이 작동하지 않기 때문에 내 활동에서 팀 변수 이름에 액세스 할 수 없습니다.

함수에만 액세스 할 수 있지만 공용 변수는 직접 액세스 할 수없는 것으로 보입니다.

내가 뭘 잘못하고 있니?

감사합니다.

답변

2

Java 오브젝트 필드에 직접 액세스 할 수 없습니다. addJavaScriptInterface의 설명서에 바로 있습니다. 또한 PhoneGap을 사용하는 경우 write a plugin 만 있으면되며 addJavaScriptInterface가 떨어지는 경우에 대해 걱정할 필요가 있습니다.

관련 문제