如何使 JavaScriptInteface 中的 showToast 调用 CreateNotification?
这是我的代码:
CheckInventoryActivity.java
package com.CheckInventory;;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.WindowManager;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebStorage;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
@SuppressWarnings("unused")
public class CheckInventory;Activity extends Activity {
WebView webview;
String username;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
WebView webView = (WebView) findViewById(R.id.webview);
webView.setBackgroundColor(0);
webView.setBackgroundResource(R.drawable.myimage);
webView.addJavascriptInterface(new JavaScriptInterface(this), "Android");
WebSettings webSettings = webview.getSettings();
webSettings.setLoadWithOverviewMode(true);
webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webSettings.setJavaScriptEnabled(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setDatabasePath("/data/data/"+this.getPackageName()+"/databases/");
webSettings.setDomStorageEnabled(true);
webview.setWebChromeClient(new WebChromeClient());
webview.loadUrl("http://192.168.0.124/android");
webview.setWebViewClient(new HelloWebViewClient());
}
public void OnResume(Bundle savedInstanceState) {
super.onResume();
CancelNotification();
}
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
{
super.onReceivedError(view, errorCode, description, failingUrl);
webview.loadUrl("file:///android_asset/nodata.html");
Toast.makeText(getApplicationContext(),"Not online", Toast.LENGTH_LONG).show();
}
}
public void CreateNotification()
{
Toast.makeText(getApplicationContext(),"Notifying", Toast.LENGTH_LONG).show();
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
int icon = R.drawable.ic_launcher; // icon from resources
long when = System.currentTimeMillis(); // notification time
Context context = getApplicationContext(); // application Context
CharSequence tickerText = "Chess"; // ticker-text
CharSequence contentTitle = "CheckInventory;"; // message title
CharSequence contentText = "You have an action to take"; // message text
Intent notificationIntent = new Intent(CheckInventory;Activity.this, CheckInventory;Activity.class);
PendingIntent contentIntent = PendingIntent.getActivity(CheckInventory;Activity.this, 0, notificationIntent, 0);
Notification notification = new Notification(icon, tickerText, when);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE | Notification.FLAG_AUTO_CANCEL;
mNotificationManager.notify(1234, notification);
}
public void CancelNotification()
{
Toast.makeText(getApplicationContext(),"Lets get it on!!", Toast.LENGTH_LONG).show();
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
mNotificationManager.cancel(1234);
}
}
JavaScriptInterface.java
package com.CheckInventory;
import android.widget.Toast;
import android.content.Context;
public class JavaScriptInterface {
Context mContext;
/** Instantiate the interface and set the context */
JavaScriptInterface(Context c) {
mContext = c;
}
/** Show a toast from the web page */
public void showToast(String toast) {
Toast.makeText(mContext, toast, Toast.LENGTH_LONG).show();
}
}
我是使用 Java 和 Android 的新手,当我尝试调用该方法时,它给了我一个错误,因为它不是静态的。底线我正在寻找 JavaScriptInterface 来创建通知。
由于我是新手,我需要一个与我的问题直接相关的示例代码。
感谢您的帮助!
谢谢