0

В Webview я загружаю локальный файл index.html и добавляю содержимое HTML с помощью javaScript в Webview с удаленного. Я хочу перенести некоторые задачи, такие как показ всплывающей подсказки, дополнительный бокс, когда пользователи нажимают на элемент, содержащийся в Webview. P.S Похоже, у него есть довольно прямое решение. Но я могу это сделать! Спасибо!Android - элемент Webview Element onClick не запускается?

ответ

0

Добавление WebView к приложению

<?xml version="1.0" encoding="utf-8"?> 
<WebView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/webview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
/> 

В JAVA URL загрузки

WebView myWebView = (WebView) findViewById(R.id.webview); 
myWebView.loadUrl("http://www.example.com"); 

Добавить ИНТЕРНЕТ Разрешение

<manifest ... > 
<uses-permission android:name="android.permission.INTERNET" /> 
... 

Включить javascript в WebView

WebView myWebView = (WebView) findViewById(R.id.webview); 
WebSettings webSettings = myWebView.getSettings(); 
webSettings.setJavaScriptEnabled(true); 

сделать интерфейс

public class WebAppInterface { 
Context mContext; 

/** Instantiate the interface and set the context */ 
WebAppInterface(Context c) { 
    mContext = c; 
} 

/** Show a toast from the web page */ 
@JavascriptInterface 
public void showToast(String toast) { 
    Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); 
} 
} 

Вы можете связать этот класс с JavaScript, который работает в вашем WebView с addJavascriptInterface() и имя интерфейса Android. Например:

WebView webView = (WebView) findViewById(R.id.webview); 
webView.addJavascriptInterface(new WebAppInterface(this), "android"); 

В вашем HTML

<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" /> 

<script type="text/javascript"> 
    function showAndroidToast(toast) { 
     Android.showToast(toast); 
    } 
</script> 

Надеется, что это помогло вам

Источника https://developer.android.com/guide/webapps/webview.html#AddingWebView

+0

мне не нужен интерфейс, как подсказке и оповещения отображаются в HTML не в Andorid родных. – Tulsi

1

shouldOverrideUrlLoading

отл.

@Override 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if(url!= && url.endWith("your_url.html")) { 

     //your tootip, alertIDialog, etc. 

     // return true to report that we have intercepted the event 
     return true; 
     } 
     return super.shouldOverrideUrlLoading(view, url); 

https://developer.android.com/reference/android/webkit/WebViewClient.html#shouldOverrideUrlLoading(android.webkit.WebView, android.webkit.WebResourceRequest)

Смежные вопросы