Вот мой код, это буквально шаг за шагом от developer.android.comТост не работает в WebView
, и он просто не работает, независимо от того, сколько раз я запустить его.
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
myWebView.loadUrl("http://www.google.com");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return 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();
}
}
}
Когда я запускаю свое приложение, веб-страница загружается, тост никогда не отображается.
Я просто не могу найти проблему. Может ли кто-нибудь сказать мне, работает ли это для них?
EDIT: Вот еще кое-что, о чем я смущен. Сразу после этого даются инструкции:
Это создает интерфейс Android для JavaScript, запущенный в веб-обозревателе . На этом этапе ваше веб-приложение имеет доступ к классу WebAppInterface . Например, вот некоторые HTML и JavaScript , который создает сообщение тоста с помощью нового интерфейса, когда пользователь нажимает кнопку:
<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />
<script type="text/javascript">
function showAndroidToast(toast) {
Android.showToast(toast);
}
</script>
Я понятия не имею, где эта часть JS кода идет либо ..
Где код, который на самом деле вызывает 'showToast()'? – laalto
Я думаю, вы неправильно читаете учебник. В нем говорится: «В этом примере класс WebAppInterface позволяет веб-странице создавать сообщение Toast с помощью метода showToast()». _ Попробуйте создать html-страницу и загрузить ее в свой веб-просмотр, как это сделано в руководство. –
Это код на веб-сайте google? – user1940676