如何在应用程序恢复时在Android WebView中触发javascript事件
我的Android应用程序中有一个WebView,我需要随时运行JavaScript函数如何在应用程序恢复时在Android WebView中触发javascript事件,javascript,android,events,android-webview,onresume,Javascript,Android,Events,Android Webview,Onresume,我的Android应用程序中有一个WebView,我需要随时运行JavaScript函数 应用程序/网络视图切换到(例如,使用应用程序切换器或从主屏幕点击图标) 设备从睡眠中醒来(当设备进入睡眠状态时,应用程序仍在屏幕上) 在我的网页javascript中使用事件侦听器仅适用于案例1 理想情况下,我希望使用AndroidonResume()java函数触发某种javascript事件,但是如何触发呢?您可以使用WebView方法来实现这一点 首先,您需要在网页javascript中创建一个事件,
理想情况下,我希望使用Android
onResume()
java函数触发某种javascript事件,但是如何触发呢?您可以使用WebView方法来实现这一点
首先,您需要在网页javascript中创建一个事件,并添加事件处理程序:
window.appresumevent=新事件(“appresume”);
addEventListener('appresume',yourFunction,false);
函数yourFunction(){…}
在全局范围内设置创建应用程序恢复事件非常重要(可以通过将其设置为窗口的属性来实现)
现在,在Android的onResume()
方法中,运行evaluateJavascript()
方法:
@覆盖
受保护的void onResume(){
super.onResume();
mainWebView.evaluateJavascript((函数(){window.dispatchEvent(appResumeEvent);})(;”,新值回调(){
@凌驾
公共无效onReceiveValue(字符串值){
}
});
}
注意,javascript必须包装在一个立即调用的函数表达式中。另请注意dispatchEvent()
将事件变量作为参数,而不是事件名称字符串
更多信息:(MDN)
对于我的完整MainActivity.java
,请单击“显示代码段”:
导入android.webkit.WebSettings;
导入android.webkit.WebView;
导入android.webkit.WebViewClient;
公共类MainActivity扩展了AppCompatActivity{
私有网络视图主网络视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainWebView=findViewById(R.id.activity\u main\u webview);
setWebViewClient(新的WebViewClient());
WebSettings WebSettings=mainWebView.getSettings();
setJavaScriptEnabled(true);
mainWebView.loadUrl(“file:///android_asset/www/index.html");
}
@凌驾
受保护的void onResume(){
super.onResume();
mainWebView.evaluateJavascript((函数(){window.dispatchEvent(appResumeEvent);})(;”,新值回调(){
@凌驾
公共无效onReceiveValue(字符串值){
}
});
}
}