1
  1. 以下を使用してシーンと webview1 要素を作成しました。

    • モード: URL
    • ソース: www.google.com

  2. シーンを表示するタスクを作成しました
  3. ここで、Webview に送信する JavaScript タスクを作成します。

    • $("#q").val("チャック・ノリス");
    • $("ボタン#検索").クリック();

PS: Javascript を実行するだけではなく、開いている Webview で実行したい。

4

1 に答える 1

3

必要なものが「静かに」達成できるときに、webviewシーンを作成してそれらに作用するポイントが何であるか、私は本当に理解していません。Web ページを照会し、それらの DOM 構造を閲覧することなくトラバースすることができます。

Tasker は JavaScript と外部ライブラリのロードをサポートしています。より詳細な説明については、こちらをご覧ください: tasker.wikidot.com/userguide-en:javascript

または、SL4A を試すこともできます: code.google.com/p/android-scripting/

アクション (Javascript または SL4A) を WebView プロパティの Page Loaded イベントに追加しようとしましたか?

// 編集

@フレデリコアラン

あなたがする必要がある/使用する必要があるのは、ヘッダーを送信しHTTP GETHTTP POSTセッションを処理することです(ヘッダーの送信を許可するため、タスカープラグイン: RESTaskをお勧めします)。しかし、まず最初に。

前提条件

ヘッダーを送信してセッションを設定できるようにするには、ページを開いたときやloginボタンをクリックしたときに送信されるヘッダーと Cookie を確認する必要があります。それを確認するには (chrome を使用している場合)、chrome の組み込みの開発者ツールを使用できます。ページのどこかを右クリックして、「要素の検査」を選択するだけです。表示されるウィンドウで、「ネットワーク」タブに移動します

セッション

ページを更新してnetworkタブを観察するだけです。リストの最初のリクエストはGETmethod と typeである必要がありtext/htmlます。クリックして。headers右側のペインでタブを選択します。セッション ID が の下の Cookie に保存されていることに気付くはずですPHPSESSID。その情報は後で必要になります

ヘッダー

ログインできるようにするには、開いているセッションが必要です。そうしないと、サーバーがアクセスを拒否します。セッション キーの保存方法と場所を確認したので、ログイン ヘッダーを確認できます (ユーザー名とパスワードがサーバーに送信される方法を知る必要があります)。

開発者ツールを開いたままにして、loginボタンをクリックします。タブの内容networkが変更されているはずです。私たちにとって興味深いのは、最初に送信されたリクエスト ( index.php?act=login、メソッドPOST、タイプtext/html) です。Form Dataクリックすると、リモート アドレス、リクエスト URL、リクエスト メソッド、およびユーザー名、パスワード、送信属性を含む少し下のようなものが表示されます。

タスカーのタスクの構築

すべての情報を収集したので、ログインするタスクの作成に進むことができます。

  1. を指す HTTP GET アクション (追加のパラメーター/ヘッダーなし) を作成しますredmine.demo.org。サーバーの応答で、設定する HTML マークアップ、ヘッダー、および Cookie を受け取ります。
  2. Cookie から %sessionID を抽出します (変数の検索と置換または変数セクションを使用)
  3. を指す HTTP POST アクションをhttps://www.untergrund.net/index.php?act=loginpostヘッダー:Cookie=%sessionIDおよびパラメーター: username=%useridpassword=%passPHPSESSID=%sessionID

受信した応答には、ログイン時に表示されるページが含まれます。

コード例

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 ] 
于 2014-11-21T18:07:21.057 に答える