purplecabbage / phonegap-plugins

Plugins for use with PhoneGap.
972 stars 3.82k forks source link

ChildBrowser iOS 6.x with Cordova 2.1.0: ChildBrowser.js broken #106

Open createthis opened 11 years ago

createthis commented 11 years ago

ChildBrowser.js appears broken in the iOS branch. The symptom is that javascript execution halts when ChildBrowser.install() is called. I had to debug with weinre to see the javascript error. The problem manifests on this line:

window.plugins.childBrowser = new ChildBrowser();

Which, when run from the weinre console gives this error:

ReferenceError: Can't find variable: ChildBrowser

I'm not a javascript expert, but it seems to be a scoping issue. I don't personally use all of that fancy prototype jargon, so I can't help fix it, but I did find a workaround:

Workaround: Copy ChildBrowser.js from the iPhone directory. This one works fine.

ysongfinance commented 11 years ago

Happen to Android as well.

nickopris commented 11 years ago

I tried the Workaround with no luck: I get Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present modally an active controller <MainViewController: 0x7e617f0>.'

createthis commented 11 years ago

nickopris, that's a different issue caused by async javascript. google for it.

nickopris commented 11 years ago

I reverted to using the original file and I can call the child browser like this: cordova.exec("ChildBrowserCommand.showWebPage", "http://www.site.com" );

albohlabs commented 11 years ago

+1

albohlabs commented 11 years ago

@nickopris please describe your workaround

nickopris commented 11 years ago

@gorekee I am not using window.plugins.childBrowser = new ChildBrowser(); I just call it like I mentioned above. Just double checked a few minutes ago to make sure it works.

I have this in my html:

and this in process.js

document.addEventListener("deviceready",onDeviceReady,false); function onDeviceReady() { cordova.exec("ChildBrowserCommand.showWebPage", "http://www.google.com" ); }

pennstump commented 11 years ago

Any updates on this issue? I can open ChildBrowser the first time but any other loads cause the error above.