2014-10-02 86 views
1

基本上,我想要做的是創建Aztec代碼閱讀器插件。 所以我需要打開我的應用程序內的某種相機屏幕。我應該做的,我的Java代碼,它現在看起來像這樣裏面:啓動攝像機活動Cordova Plugin

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應用程序,它的工作原理就像我想。

我找不到任何幫助我解決問題的教程/帖子,我沒有時間學習Android開發。

所以我的問題是:如何在我的科爾多瓦應用程序中包含該阿茲特克碼閱讀器?

//編輯

我可以包括我的插件到應用程序,這個問題裏面AztecReaderPlugin類和一些活動有關的方法奠定。我的問題是我無法通過科爾多瓦打開某種相機視圖。那個相機視圖就是我的插件。

回答

0

當然你可以

首先你需要在config.xml中聲明你的自定義插件。你可以在res> xml文件夾中找到這個文件。

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

然後,你需要使用Java的代碼

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; 
    } 
} 

最後,我們從JavaScript調用

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

一個插件,是不是我想實現實現插件。我的問題是,我想在Cordova插件中運行某種Camera View。但我想我確實寫錯了。 – 2014-10-02 09:35:38