2017-04-24 10 views
2

Webviewの中にある特定のボタンを(AccessibilityServiceで)クリックすることはできますか?例えば、あるアプリケーションAはMainActivityの中にwebviewを持っています。アクティビティの開始後、Webコンテンツがwebviewにロードされます。読み込まれたウェブページには、「チャット」というテキストのボタンが含まれています。アクセシビリティサービスでこのボタンをクリックできますか?私はAndroidのネイティブウィジェット(android.widget.Button、TextViewなど)をクリックすることができますが、WebビューのWebページに表示されているボタンをクリックする方法はわかりません。助けてくださいアクセシビリティサービスとウェブビュー

+0

これを行うには、そのボタンをクリックした後に取得したURLを上書きしてください。その方法では何をしたいのですか? –

+0

私のアプリには、実行するアイコンをクリックすると独自のサービスで実行されるカーソルが含まれています私が自分のアプリケーションから外れていて、他のアプリを操作している場合は、webAttviewをクリックして、performActionが動作しないようにしてください。 –

+0

@AkashDubey私はRohitがユーザーが画面に触れることなくクリックしたいと思う。また、バックエンドサービスから。画面に触れることなく、画面座標を使用してリンク上でFOCUSをどのように取得しますか? – usman

答えて

1

これは複雑な答えです。はい、あなたはビューをクリックできますが、それはウェブ開発者がどのようにボタンを実装したかによって異なります。彼らがonClickリスナーの代わりにリスナーをタッチダウンして実装されたような何か愚かなことをした場合、それは壊れている可能性があります。提案:TalkBackを使用してください。 TalkBackで再生できない場合は、再生できません。それがない場合は、次のコードは、あなたのために働く必要があります。

AccessibilityNodeInfo info = ...; 

info.performAction(AccessibilityNodeInfo.ACTION_CLICK); 

ミニノート:アクセシビリティサービスから、偽の本物のハードウェア・イベントへの能力を、実装のAndroidの噂がありました。これまでのところ、私はこれをAndroidのデモで利用し、システムアプリ(特権を昇格したもの)のみに利用していることを見てきました。あなたがこれを完璧にするために必要なAPIに注目してください。実際にはどこかに隠れているかもしれませんが、まだ公開されていません。

+0

トークバックでは、「シングルタップクリック」を有効にすると、リンク先のタップでリンクがフォーカスされた後に、シングルタップがWebページで機能しなくなります。これは、performAction(CLICK)がWebページで機能しないことを示しています。 Double-Tapのリンクは機能しますが、ダブルタップは内部的に処理されており、アクセスはありません。 – usman

+0

シングルタップは実験的なものなので、何のメトリックとしても使用しません。 – ChrisCM

+0

でも、シングルタップではperformAction(CLICK)し、Webページやキーボードを除く他のすべてのビューで機能します。少なくともperformAction(CLICK)はWebページで動作しないことを示しています。 ? – usman

-1

私はあなたのような何かをすることができると思いますか?

Button button = (Button)findViewById(R.id.ButtonId); 
button.onClick(.....); 
+0

私のアプリケーションには、自分のアプリケーションから出て、coantain webview、performActionが動作していない他のアプリを操作している場合、クリックするとアイコンをクリックすると、独自のサービスで実行されるカーソルが含まれています。 –

+2

アクセシビリティサービスで!このコードはうまく動作しません。 AccessibilityServicesにはアプリケーションビューにアクセスする権限がなく、アクセシビリティに基づくビューの表現のみがアクセスできます。 – ChrisCM

関連する問題