I created a scene and webview1 element with:
Now, I want to create a JavaScript task to send to the Webview:
PS: I don't want to just execute Javascript, I want to execute it in the opened Webview.
I do not really understand what would possibly be the point of creating webview scenes and acting on them, when what you need can be achieved "silently". You can query webpages and traverse their DOM structure without even viewing.
Tasker does support JavaScript and loading external libraries. Have a look here for more detailed explanation: tasker.wikidot.com/userguide-en:javascript
Alternatively, you can give SL4A a go: code.google.com/p/android-scripting/
Have you tried adding an action (either Javascript or SL4A) to the Page Loaded event on WebView properties?
// edit
@fredericoallan
What you need to do/use is to play with HTTP GET
and HTTP POST
for sending headers and handling sessions (I do recommend tasker plugin: RESTask for that as it allows sending headers). But first things first.
To be able to send headers and set session, you need to find out what headers and cookies are being sent when you open the page and/or click login
button. To see that (if you're using chrome) you can use chrome's built in developer tools. Just right click somewhere on the page and select "inspect element".
In the window that'll appear, go to tab "network"
Just refresh the page and observe the network
tab. First request on the list should be GET
method and type text/html
. Click it. Select headers
tab in the right pane. You should now notice, that our session ID is being stored in a cookie under PHPSESSID
. We're gonna need that information later
To be able to log in, you need to have an open session, otherwise server will deny you access. We've checked how and where session key is stored, so we can have a look at log-in headers (we need to know how your username and passord are being sent to the server).
Having developer tools still open, click login
button. Content of the network
tab should have changed. What is interesting for us, is the first request sent ( index.php?act=login
, method POST
, type text/html
). When clicked, we should see things like remote address, request URL, request method and little bit down below Form Data
containing username, password, submit attributes.
Now, having gathered all that information, we can proceed to building a task, that will log us in.
redmine.demo.org
. In a server response you'll receive the HTML markup, headers and cookie to be set.https://www.untergrund.net/index.php?act=loginpost
with a header: Cookie=%sessionID
and parameters: username=%userid
, password=%pass
, PHPSESSID=%sessionID
you are now logged in. Response received will contain page that is diplayed upon login.
HTTP loggin in (119)
A1: RESTask [ Configuration:REST call Package:com.freehaha.restask Name:RESTask Timeout (Seconds):30 ]
A2: Test Variable [ Type:Length Data:%rthdr_set_cookie Store Result In:%sesslen ]
A3: Variable Section [ Name:%rthdr_set_cookie From:1 Length:%sesslen-8 Adapt To Fit:Off Store Result In:%sessionID ]
A4: RESTask [ Configuration:REST call Package:com.freehaha.restask Name:RESTask Timeout (Seconds):30 ]