已经过了一个星期,我仍然遇到将cordova整合到一个ndroid webview中的问题! 在onPause和onResume工作正常之前,但在集成之后它们不再触发。 即使我在我的控制台中看到了这一点:
07-15 17:01:21.880: D/CordovaActivity(5635): Paused the application!
07-15 17:01:21.880: D/CORDOVA_ACTIVITY(5635): onPause
但是opPause函数中的代码没有执行!!我真的厌倦了这一点..我试了一个星期不停地让它运转起来。
这是我的主要java文件:
package com.Snap.What;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.webkit.JavascriptInterface;
import org.apache.cordova.*;
public class WhatSnap extends CordovaActivity implements CordovaInterface
{
private CordovaWebView cordova_webview;
private String TAG = "CORDOVA_ACTIVITY";
private final ExecutorService threadPool = Executors.newCachedThreadPool();
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.cordova_layout);
cordova_webview = (CordovaWebView) findViewById(R.id.cordova_web_view);
// Config.init(this);
cordova_webview.loadUrl("file:///android_asset/www/index.html");
JavaScriptInterface jsInterface = new JavaScriptInterface(this);
cordova_webview.getSettings().setJavaScriptEnabled(true);
cordova_webview.addJavascriptInterface(jsInterface, "JSInterface");
}
public class JavaScriptInterface {
private Activity activity;
public JavaScriptInterface(Activity activiy) {
this.activity = activiy;
}
@JavascriptInterface
public void showLog(){
Log.v("blah", "blah blah");
}
}
@Override
protected void onPause() {
super.onPause();
Log.d(TAG, "onPause");
}
@Override
protected void onResume() {
super.onResume();
Log.d(TAG, "onResume");
}
@Override
public void onDestroy() {
super.onDestroy();
if (this.cordova_webview != null) {
this.cordova_webview
.loadUrl("javascript:try{cordova.require('cordova/channel').onDestroy.fire();}catch(e){console.log('exception firing destroy event from native');};");
this.cordova_webview.loadUrl("about:blank");
cordova_webview.handleDestroy();
}
}
@Override
public Activity getActivity() {
return this;
}
@Override
public ExecutorService getThreadPool() {
return threadPool;
}
@Override
public Object onMessage(String message, Object obj) {
Log.d(TAG, message);
if (message.equalsIgnoreCase("exit")) {
super.finish();
}
return null;
}
//
//
// @Override
// public void setActivityResultCallback(CordovaPlugin cordovaPlugin) {
// Log.d(TAG, "setActivityResultCallback is unimplemented");
// }
// @Override
// public void startActivityForResult(CordovaPlugin cordovaPlugin,
// Intent intent, int resultCode) {
// Log.d(TAG, "startActivityForResult is unimplemented");
// }
}
我还尝试用java来评论onPause和onresume,但我只是在控制台中得到这个:
07-15 17:01:21.880: D/CordovaActivity(5635): Paused the application!
在我的js中,我有以下几行:
document.addEventListener("resume", onResume, false);
document.addEventListener("pause", punish, false);
以及WONT EXECUTE的相应功能!
我真的不知道为什么他们没有执行..请看看你有任何想法请告诉我。
答案 0 :(得分:0)
这是一个旧帖子,如果有人关注
更改
document.addEventListener("pause", punish, false);
到
document.addEventListener("pause", onPause, false);