Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

IBM Worklight - How do I enable WebView debugging in Android?

Since Chrome has an awesome feature for remote debugging, I am wondering how this could help in developing in Worklight.

In the following docs they say to debug the contents of your WebView, you need to enable it programmatically from within your application by calling setWebContentsDebuggingEnabled, a static method on the WebView class.

Where can I find this class and will this be beneficial to do it in Worklight?

https://developers.google.com/chrome-developer-tools/docs/remote-debugging?hl=nl#debugging-webviews

like image 457
Ken Vernaillen Avatar asked Dec 05 '13 09:12

Ken Vernaillen


People also ask

How do I enable WebView debugging?

Configure Android WebViews to debug To turn on Android WebView debugging, run the setWebContentsDebuggingEnabled static method on the WebView class. The setting applies to all of the Android WebViews of the app. Android WebView debugging isn't affected by the state of the debuggable flag in the manifest of the app.


1 Answers

Please note that WebView debugging is only relevant for Android 4.4 "KitKat" and not to any prior version of the Android OS.

To debug your Chromium WebView in a Worklight application with the Android environment,

  1. Open the Android SDK and update to API Level 19.
  • You will of course need either a device or emulator running this version.

  1. Make sure that in yourAppName\android\native\AndroidManifest.xml you add support for targetSdkVersion=19.

<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19" />

  1. Change the Build Target to Android 4.4:
  • Right-click on the generated Android project > Properties > Android > Build Target

  1. Open yourAppName\android\native\src\com\yourAppName\yourAppName.java and
  • Import the following:
import android.os.Build;
import android.util.Log;
import android.content.pm.ApplicationInfo;
import android.webkit.WebView;
  • Add the following to the onCreate() function:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
     if(0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)){
         WebView.setWebContentsDebuggingEnabled(true);
     }
}

The rest of the steps are as described in the Google documentation page.

I don't have an Android device to verify this, so please try.

As for whether it is beneficial or not, another debugging alternative can't hurt. It is up to you to decide if it's good or not, for you.

like image 154
Idan Adar Avatar answered Oct 18 '22 14:10

Idan Adar