How to implement CordovaInterface so that I can use the camera in webview?

I am new to Android.

I WebView Cordova WebView into my Android application by following the tutorial .

I have already successfully downloaded a webpage from my server using CordovaWebView .

Say that I have a button on this web page called "Capture Photo", what should I do to call the local API so that I can use the camera?

The tutorial shows that I need to use CordovaInterface to use the camera as follows.

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

I do not know what exactly is activityResultCallback . Is there another tutorial to show me how to implement this interface?

+4
source share
1 answer

Since no one answers my question.

I find a tutorial that can solve this problem.

Update: Given that the link is broken, I will send my own code to implement the Cordova interface.

 // 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); } }); } } 
+7
source

All Articles