Troubleshoot Android 4.3 webview within an app that requires up-to-date Google Play services - android-emulator

I need to troubleshoot an issue happening in a webview running within my app. This issue only occurs on Android versions lower or equal to 4.3. My app requires an up to date version of Google Play services.
In order to troubleshoot my webview, I usually can run my app under the Android Emulator (with the latest version of Android), then connect to the web view via Chrome (using chrome://inspect) - the web view appears in Chrome and I'm able to browse the DOM and debug.
To run the app under 4.3, I've created (under AVD) a new device from an existing device definition,
then picked the target Google APIs (Google Inc.) - API Level 18. I've then installed my app, but when trying to run it, I get the error message "This app won't run unless you update Google Play services.". There's an "Update" button on the previous dialog, but nothing happen when clicking on it.
I then tried to debug my issue using Genymotion. I've created a device under 4.3, followed these instructions to flash my device with the latest Google Play services and installed my app. I can now run the app and reproduce the issue within this simulated environment.
The trick now is to be able to connect to the web view from my local Chrome browser. I've enabled remote debugging as described here. Now my device appears in Chrome, but the web view is not showing up in the inspector. Similarly, if I open a new tab under the native browser, it won't show up in the remote inspector. If I open a new tab under Android Chrome though, I can see it showing up under my remote Chrome inspector.
I can see two way moving forward and successfully accessing to the DOM of my webview:
Fixing the "Update" issue under the Android Emulator running 4.3
Or
Connecting to my web view from my Chrome inspector while running the app under Genymotion
Any idea on how to solve one of these two problems?

I have been using weinre for sometimes. it's a pretty good tool to debug webview for android 4.3 and lower. It provides almost same interface as chrome debugger.
All you need to do are:
Install weinre
sudo npm -g install weinre
Client side:
Insert the following code to your webpage <head> section.
Note: it's better to put it at end of <head> section, otherwise there will be some strange errors and debugger won't show up.
<script src="http://<your server ip here>:8081/target/target-script-min.js"></script>
Server side
weinre --boundHost -all- --httpPort 8081
Debugger
open the debugger tool from weinre from your desktop browser:
http://localhost:8081/client/
Finally,
select any target in Targets part and then start debugging.

Remote debugging web views only works on devices with android 4.4 and above.
have a look at this :
https://developer.chrome.com/devtools/docs/remote-debugging

Related

Ionic 3, HTTP native vs. HttpClient

I am struggling to make HTTP native or HttpClient get to work for my app.
If I run ionic serve -c I get HttpClient working good on my browser at localhost:8100 and in Ionic Dev App. If I build for Android though, HttpClient fails thus I decided to give HTTP Native a try.
Then I don't understand how I could get some console log if that native plugin is not supported from Ionic Dev App (here says), neither I can see on my browser cause of Cordova is not present.
Is there a way to log on a device to debug HTTP Native?
You should debug your application connect your phone to your laptop and
Open your Google Chrome Browser
Go to Inspect (Ctrl + Shift +I)
Go To More Tools enter image description here
Open Remote devices and inspect your device
For more information click here
Thanks
You wont see native http calls log to the browser since they are called native from the device and never are called from the browser, but if you are debugging while connected to xcode, the xcode debugging output should give some information about your native HTTP calls success and failure.
Following #vd_virani answer, here is a quick link to inspect a device from Chrome
chrome://inspect/#devices
Plug your device via USB, then copy & paste this link in your Chrome address bar like a website.

How to use chrome remote debugging with ionic framework?

So I'm reading in this link and it says we can use chrome for remote debugging an app which seeems great but they don't explain how to do it. When I click in the link they provide which has some android documentation, I just see java code. As a non java-developer I wonder how can I use remote debugger in chrome for ionic framework?
To access remote debugging of a webview on your phone, plug your phone into your pc and go to chrome. then type: chrome://inspect into the url bar. open your app on your phone and it should show your device on the inspect dashboard.

Blackberry Ripple Emulator on click start services does nothing

I want to package and launch my BlackBerry Hello World application for WebWorks. For developement, I am using the Ripple emulator. The Ripple simulator says:
The build and deploy services are not currently running, would you like to start them?
After pressing the button Start Services nothing happens and no errors are in the error console.and i also did below steps as i have searched and get this result:
There are two reasons this might be happening. The first is that Chrome is preventing this from happening.
Open the Tools --> Extensions screen in Chrome
Enable 'Developer Mode' checkbox if it isn't already
Are you running Chrome in Incognito mode? If so enable the 'Allow in Incognito' checkbox
The other options is that nodejs is being blocked. If you're on windows, I'd suggest making sure that all user permissisons are enabled to allow you to run Chrome in a way that it can launch external processes.
And After doing all when ever i refresh page it says
The build and deploy services are currently running at localhost:9910. and after loading that page this message not visible but
The build and deploy services are not currently running, would you like to start them? message still there! please explain what's wrong here?
Thanks
This issue is solved by removing Ripple extension version 0.9.15 and installing version 0.9.16 (latest as of this posting), and restarting Chrome. When you click the 'Start Services' button, the console should appear displaying a build service start up message.
http://developer.blackberry.com/bbos/html5/download/
Install the latest beta and it should work!

Blackberry webview can not connect to internet and/or display a web page

I am creating a simple app using Eclipse and Blackberry JRE 7.0 as per the example given at:
http://docs.blackberry.com/en/developers/deliverables/11958/Configure_a_browser_field_825671_11.jsp
I am trying to load a simple HTML page hosted on a remote server inside browser field in the app.
When running the app on 9930 Simulator I always get the error 'Local connection timeout after 120000 on simulator'. The same remote page shows up fine on the web browser of the same simulator..
I am making sure to start the MDS simulator.
The same link shows up fine in simulator browser. Its only when using browserfield, I am having the problem.
I get the folling error when clicking the icon to launch the app:
Error displaying content for: http://yahoo.com
Error message: java.lang.runtimeException:ApplicationRegistry:wai​tFor
(0xd0fe7d7338fourd7f0d) timeout
....
On waiting further I get the 'Local connection timeout error..
I know that in Android one has to enable internet connection when using the webview in the manifest file - is there any similar setting one has to do in blackberry?
I tried to run the BrowserField demo app on 9930 (JRE 7.0.0) and encounter the same issues as you did. On the other hand, the demo worked fine on 9800 (JRE 6.0.0). I tried again on 9930 and noticed that though I definitely enabled MDS (enabled the 'Launch Mobile Data System Connection Service (MDS-CS) with simulator' in the Run/Debug Configurations in Eclipse), the MDS window didn't appear which seemed very strange.
I googled a little and found this post on BlackBerry's forums. According to this post:
An incorrect version of MDS-CS simulator was included in 7.0. To correct it you can delete it and copy the version from 6.0.
Well done, RIM!
Then, I deleted the MDS folder from JRE 7.0.0 and copied the one from JRE 6.0.0 as described in the aforementioned post. Closed and rerun simulator and voilà, the MDS window appeared. Rerun application, and everything worked like a charm!

Testing GWT application on Mobile Emulator

I want an android and iphone emulator to run on windows to test my gwt application on windows. can someone point me to a proper emulator because i've been trying some with no success
The official iPhone simulator does not run on Windows. Seems you have to get a Mac ;-)
However the Android emulator can be installed pretty much anywhere:
http://developer.android.com/guide/developing/tools/emulator.html
If you point the Andorid browser in the emulator to your GWT application you should be able to test it. You can find messages from the browser in LogCat, watch out for the logging tag WebCore. You can even log from within your code and get the output in LogCat, see:
http://developer.android.com/guide/webapps/debugging.html