Merged in bryce`s latest.

This commit is contained in:
filmaj 2010-08-24 15:01:58 -07:00
commit ac0ba41ccf
2 changed files with 27 additions and 8 deletions

View File

@ -110,7 +110,7 @@ PhoneGap.Channel.join = function(h, c) {
(!c[j].fired?c[j].subscribeOnce(f):i--);
}
if (!i) h();
}
};
/**
@ -152,7 +152,9 @@ PhoneGap.onNativeReady = new PhoneGap.Channel();
// _nativeReady is global variable that the native side can set
// to signify that the native code is ready. It is a global since
// it may be called before any PhoneGap JS is ready.
if (typeof _nativeReady != "undefined") { PhoneGap.onNativeReady.fire(); }
try {
if (_nativeReady) { PhoneGap.onNativeReady.fire(); }
} catch (e) { }
/**
* onDeviceReady is fired only after both onDOMContentLoaded and
@ -166,6 +168,11 @@ PhoneGap.onDeviceReady.subscribeOnce(function() {
PhoneGap.Channel.join(function() {
PhoneGap.onDeviceReady.fire();
// Fire the onresume event, since first one happens before JavaScript is loaded
var e = document.createEvent('Events');
e.initEvent('onresume');
document.dispatchEvent(e);
}, [ PhoneGap.onDOMContentLoaded, PhoneGap.onNativeReady ]);

View File

@ -108,6 +108,8 @@ public class DroidGap extends Activity {
appView.setWebChromeClient(new GapClient(this));
}
appView.setWebViewClient(new GapViewClient(this));
appView.setInitialScale(100);
appView.setVerticalScrollBarEnabled(false);
@ -132,11 +134,6 @@ public class DroidGap extends Activity {
root.addView(appView);
// Try firing the onNativeReady event in JS. If it fails because the JS is
// not loaded yet then just set a flag so that the onNativeReady can be fired
// from the JS side when the JS gets to that code.
appView.loadUrl("javascript:try{PhoneGap.onNativeReady.fire();}catch(e){_nativeReady = true;}");
setContentView(root);
}
@ -387,7 +384,22 @@ public class DroidGap extends Activity {
}
public class GapViewClient extends WebViewClient {
Context mCtx;
public GapViewClient(Context ctx) {
mCtx = ctx;
}
public void onPageFinished (WebView view, String url) {
// Try firing the onNativeReady event in JS. If it fails because the JS is
// not loaded yet then just set a flag so that the onNativeReady can be fired
// from the JS side when the JS gets to that code.
appView.loadUrl("javascript:try{ PhoneGap.onNativeReady.fire(); console.log('FIRE!');}catch(e){_nativeReady = true; console.log('native=TRUE');}");
}
}
public boolean onKeyDown(int keyCode, KeyEvent event)
{