Необходимо вызвать действие обратно из интерфейса JavaScript, созданного для WebView. - PullRequest
0 голосов
/ 15 марта 2011

Я работаю над приложением, которое использует веб-просмотр в одном из своих занятий.Я приложил интерфейс сценария Java с веб-контентом.Мне нужно вызвать операцию с данными в связке, основанной на событии щелчка (можно сказать, событие касания).Я могу передать данные обратно в интерфейс сценария Java, но он не позволяет мне вызывать startActivity (Intent).Есть ли другой способ, которым я могу назвать деятельность?Заранее спасибо !!

Ответы [ 2 ]

1 голос
/ 21 марта 2011

Вы можете использовать WebView OnClick, чтобы проверить, какая ссылка была нажата, и принять соответствующие меры. Как это:

wv.setOnClickListener(new OnClickListener() {
public boolean onClick(View v){
    HitTestResult result = wv.getHitTestResult();
    String url = result.getExtra();
    //Log.i(myTag, url);
    if(url.equals("which-ever-url-you-want-to-override.com"){
        Intent i = new Intent(getApplicationContext(), yourActivity.class);
        startActivity(i);
    }


}
});

getHitTestResult () предоставит вам объект, который скажет вам, куда указывает URL ссылки. Вы можете использовать это, чтобы различные ссылки делали разные вещи в вашем приложении.

1 голос
/ 15 марта 2011

Вот что вам нужно сделать для поддержки этого:

  1. Для запуска действия: обработайте категорию android.intent.category.BROWSABLE с помощьюконкретная схема.

  2. В WebView onClick загрузите URL, начиная со схемы, обрабатываемой приложением.

Например: TestActivity

<manifest>
 <application>
   <activity>
    <intent-filter>
         <action android:name="android.intent.action.VIEW" />
         <category android:name="android.intent.category.DEFAULT" />
         <category android:name="android.intent.category.BROWSABLE" />
         <data android:scheme="test-app"/>
     </intent-filter>
   </activity>
 </application>
</manifest>

URL-адрес для загрузки после просмотра в Интернете. Нажмите:

webView.loadUrl( "test-app://data-that-you-want-to-transfer" );

HTH!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...