4

私はAndroidを初めて使用します。

チュートリアルWebViewに従って、AndroidアプリにCordovaを埋め込みました。

を使用して、サーバーからWebページを正常にロードしましたCordovaWebView

そのWebページに「CapturePhoto」というボタンがあるとしましょう。カメラを使用できるようにローカルAPIを呼び出すにはどうすればよいですか?

CordovaInterfaceチュートリアルでは、次のようにカメラを使用するためにを実装する必要があることを示唆しています。

@Override
public void setActivityResultCallback(CordovaPlugin plugin) {
    this.activityResultCallback = plugin;        
}

activityResultCallbackが正確に何であるかわかりません。このインターフェースを実装する方法を示す別のチュートリアルはありますか?

4

1 に答える 1

7

誰も私の質問に答えないので。

この問題を解決できるチュートリアルを見つけました。

更新:リンクが壊れているので、Cordovaインターフェイスを実装するための独自のコードを投稿します。

// Instance for CordovaInterface
private final ExecutorService threadPool = Executors.newCachedThreadPool();
private boolean mAlternateTitle = false;
private boolean bound;
private boolean volumeupBound;
private boolean volumedownBound;
private CordovaPlugin activityResultCallback;
private Object activityResultKeepRunning;
private Object keepRunning;


public Activity getActivity() {
    return this;
}

@Deprecated
public Context getContext() {
    return this;
}

public ExecutorService getThreadPool() {
    return threadPool;
}


public void setActivityResultCallback(CordovaPlugin plugin) {
    this.activityResultCallback = plugin;

}

public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) {
    this.activityResultCallback = command;
    this.activityResultKeepRunning = this.keepRunning;

    // If multitasking turned on, then disable it for activities that return
    // results
    if (command != null) {
        this.keepRunning = false;
    }

    // Start activity
    super.startActivityForResult(intent, requestCode);

}

@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    final CordovaPlugin callback = this.activityResultCallback;
    if (callback != null) {
        // Need to use background thread
        this.getThreadPool().execute(new Runnable() {
            public void run() {
                callback.onActivityResult(requestCode, resultCode, intent);
            }
        });
    }
}
于 2013-01-14T17:29:30.997 に答える