2014-10-02 2 views
1

기본적으로 내가하고 싶은 일은 아즈텍 코드 리더 플러그인을 만드는 것입니다. 그래서 내 앱에서 카메라 화면을 열어야합니다.카메라 작동 시작 코르도바 플러그인

public class AztecReaderPlugin extends CordovaPlugin { 
    @Override 
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { 
     try { 
      if(action.equals("open")) { 
       Context context = cordova.getActivity().getApplicationContext(); 
       Intent intent = new Intent(context, MainActivity.class); 
       intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       context.startActivity(intent); 
       callbackContext.success(); 
       return true; 
      } 
      callbackContext.error("Something gone wrong!"); 
      return false; 
     } catch (Exception e) { 
      callbackContext.error(e.getMessage()); 
      return false; 
     } 
    } 
} 

그것은 기본적으로 MainActivity 클래스 내부의 코드를 실행한다 : 나는 지금과 같이 보이는 내 자바 코드 내부에 있음을해야한다. 그리고 MainActivity 클래스 메소드 onCreate는 다음과 같습니다

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

     setContentView(R.layout.activity_main); 

     Button btnDoFocus = (Button)findViewById(R.id.buttonAutoFocus); 
     btnDoFocus.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       preview.autoFocus(); 
      } 
     }); 


     Button btnDoAztec = (Button)findViewById(R.id.buttonDoAztec); 
     btnDoAztec.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       preview.setEnableReadAztecCode(true); 
      } 
     }); 
    } 

건이며, 내가 약 AztecReaderPlugin을 잊지 및 독립 안드로이드 응용 프로그램과 MainActivity 코드를 실행했을 때, 그것은 내가 원하는 것처럼 작동합니다.

내 문제에 도움이되는 튜토리얼/게시물을 찾을 수 없으며 Android 개발을 배울 시간이 없습니다.

제 질문은 : 어떻게하면 아즈텍 코드 리더를 내 코도 바 앱에 포함시킬 수 있습니까?

는 // 내가 응용 프로그램에 내 플러그인을 포함 할 수

편집은 문제가 AztecReaderPlugin 클래스와 일부 활동 관련 메서드 내 낳는다. 내 문제는 코도 바를 통해 어떤 종류의 카메라보기를 열 수 없다는 것입니다. 그리고 그 카메라보기 내 플러그인입니다.

답변

0

물론 가능합니다.

먼저 config.xml에서 사용자 정의 플러그인을 선언해야합니다. res> xml 폴더에서이 파일을 찾을 수 있습니다.

<feature name="CustomPlugin"> 
     <param name="android-package" value="com.Phonegap.CustomPlugin" /> 
</feature> 

는 그런 다음 마지막으로 내가 달성하기 위해 원하는 것을하지 않습니다 자바 스크립트

function initial(){ 
    var name = $("#NameInput").val(); 
    cordova.exec(sayHelloSuccess, sayHelloFailure, "CustomPlugin", "sayHello", [name]); 
} 

function sayHelloSuccess(data){ 
    alert("OK: " + data); 
} 

function sayHelloFailure(data){ 
    alert("FAIL: " + data); 
} 
+0

에서 플러그인을 호출하는 자바 - 코드를

public class CustomPlugin extends CordovaPlugin { @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { if (action.equals("sayHello")){ try { String responseText = "Hello world, " + args.getString(0); callbackContext.success(responseText); } catch (JSONException e){ callbackContext.error("Failed to parse parameters"); } return true; } return false; } } 

를 사용하여 플러그인을 구현해야합니다. 내 문제는 Cordova 플러그인에서 Camera View를 실행하고 싶습니다. 그러나 나는 뭔가 잘못했다고 생각합니다. –

관련 문제