I just mean use: apply plugin: 'android-library'
rather than apply plugin: 'android' On Tue, Mar 17, 2015 at 11:09 AM, Carlos Santana <csantan...@gmail.com> wrote: > Andrew when you say "denote your app as an android library" > > Your thinking a AAR archive, which includes the cordova-platform core, > cordova.js, and plugins native and web assets? > > On Tue, Mar 17, 2015 at 11:06 AM, Carlos Santana <csantan...@gmail.com> > wrote: > > > Andrew similar requirement we have for iOS. > > If we implement something like that in CLI to have an option to produce a > > library instead of an App. > > > > In theory this is something we have discussed here in IBM, to do > something > > similar with Cocoa Pods, produce a cocoapod that represent the iOS > Cordova > > Web View to be easily added to a existing iOS Native App and using Pod is > > an easy way to be added and managed. > > > > > > On Tue, Mar 17, 2015 at 11:03 AM, Carlos Santana <csantan...@gmail.com> > > wrote: > > > >> Andrew where is this new enhancements documented, Only place I can find > >> any documentation is here: > >> > http://cordova.apache.org/docs/en/4.0.0/guide_platforms_android_webview.md.html#Android%20WebViews > >> > >> Can you update this Docs? > >> > >> In addition to having the docs updated I think it will be great > >> beneficial if one the Android Gurus do a blog post with tutorial style, > >> from end to end on how to do this, and a quick video would not hurt > also ;-) > >> > >> > >> On Tue, Mar 17, 2015 at 10:57 AM, Andrew Grieve <agri...@chromium.org> > >> wrote: > >> > >>> On Tue, Mar 17, 2015 at 10:10 AM, Carlos Santana <csantan...@gmail.com > > > >>> wrote: > >>> > >>> > @Michal > >>> > I would get together with Marcel and Martin, they are our Android > goto > >>> SME > >>> > > >>> > @Joe > >>> > Do we have all the test cases created now are some missing? > >>> > How do you run this specific test cases on Android Studio? Google > team > >>> any > >>> > help on gradle to run this test cases on CI I think is very important > >>> to > >>> > have a healhty CI running test cases on every pull request or commit > >>> > > >>> I've already ported the unit test over to gradle and they are easy to > run > >>> in Android Studio. There are some instructions in the test/README.md > >>> > >>> To be clear, the embedding ability was *improved* in 3.7.0, in that you > >>> can > >>> now control all configurations directly from Java. > >>> > >>> > >>> > >>> > > >>> > Hum I don't know how I feel about the Plugins not working, I think > >>> this is > >>> > the key on using Cordova. > >>> > If I'm just going to have a Web View with no Cordova then I would use > >>> In > >>> > App Browser. > >>> > > >>> > The whole purpose of Including a "Cordova" Web View in to a full > Native > >>> > Android App, It's the "Cordova" functionality which resides mostly in > >>> the > >>> > Plugins! > >>> > Maybe I misunderstood your statements about plugins not working. > >>> > > >>> > > >>> > > >>> > On Mon, Mar 16, 2015 at 9:31 PM, Joe Bowser <bows...@gmail.com> > wrote: > >>> > > >>> > > Well, this feature was tested using TDD, and when the tests were > >>> > re-written > >>> > > I assumed that they would be run. In this case, I'll blame Android > >>> > Studio, > >>> > > since we're still battling with the learning curve on that one. (I > >>> have > >>> > no > >>> > > clue how to run the new tests from Gradle on the command line, only > >>> in > >>> > > Android Studio). > >>> > > > >>> > > The thing is that another refactor removing layouts broke the > tests, > >>> > which > >>> > > is how I know that they weren't run. So, I landed a couple of > >>> commits to > >>> > > refactor the unit tests so that they test this use case with the > new > >>> API > >>> > > and the tests now pass. This works again, and we can update the > >>> > > documentation, > >>> > > > >>> > > There's still the matter of getting the plugins to work, but I'm > fine > >>> > with > >>> > > leaving that to be an exercise for the downstreams that support > >>> this, and > >>> > > not Cordova itself. > >>> > > > >>> > > > >>> > > > >>> > > On Mon, Mar 16, 2015 at 6:27 PM Michal Mocny <mmo...@chromium.org> > >>> > wrote: > >>> > > > >>> > > > Carlos, thats great, then perhaps you could give 4.0 embedded > >>> webview a > >>> > > > shot to confirm that it is still adequately supported for your > >>> > customers? > >>> > > > > >>> > > > I think this thread has been too much talk and not enough trying > >>> it out > >>> > > in > >>> > > > practice. Everyone agrees the use case is important, what's left > >>> is to > >>> > > > confirm we got it right. > >>> > > > > >>> > > > -Michal > >>> > > > > >>> > > > On Mon, Mar 16, 2015 at 8:58 PM, Carlos Santana < > >>> csantan...@gmail.com> > >>> > > > wrote: > >>> > > > > >>> > > > > I just want to add that Joe is not alone on thinking that are > >>> > > developers > >>> > > > > with this use case. > >>> > > > > For us we have customers that start with Native Android alone, > >>> and > >>> > then > >>> > > > > later want to add a Cordova Web View to a portion of their App. > >>> > > > > And they want an easy way to add a Cordova Web View. > >>> > > > > For 4.x, I would assume that the developer can choose to make > >>> this > >>> > > > embedded > >>> > > > > Cordova Web View CrossWalk based. > >>> > > > > > >>> > > > > > >>> > > > > On Wed, Mar 11, 2015 at 10:24 AM, Joe Bowser < > bows...@gmail.com> > >>> > > wrote: > >>> > > > > > >>> > > > > > That's why we have tests! I just changed the activity and saw > >>> that > >>> > we > >>> > > > > have > >>> > > > > > one failure. I'm not sure why this test in particular is > >>> failing, > >>> > > > since > >>> > > > > > there's too many assertions in one method, so I'll have to > try > >>> and > >>> > > > debug > >>> > > > > it > >>> > > > > > today. > >>> > > > > > > >>> > > > > > The thing is that if we're deprecating something and > replacing > >>> it > >>> > > with > >>> > > > > > something else, we should write tests for it. Releasing a > >>> 4.0.x > >>> > and > >>> > > > > > changing how we embed a WebView by changing class names but > not > >>> > > fixing > >>> > > > up > >>> > > > > > the deprecation is bizzare. > >>> > > > > > > >>> > > > > > On Wed, Mar 11, 2015 at 7:15 AM Andrew Grieve < > >>> > agri...@chromium.org> > >>> > > > > > wrote: > >>> > > > > > > >>> > > > > > > I wanted to make sure that I didn't break the old way of > >>> doing > >>> > > > things. > >>> > > > > > > > >>> > > > > > > On Tue, Mar 10, 2015 at 2:24 PM, Joe Bowser < > >>> bows...@gmail.com> > >>> > > > wrote: > >>> > > > > > > > >>> > > > > > > > The main issue is that this isn't documented anywhere, > and > >>> this > >>> > > is > >>> > > > > > > > necessary for people to use a Third Party WebView. Also, > >>> why > >>> > > > didn't > >>> > > > > > you > >>> > > > > > > > bother updating the test with the new API? > >>> > > > > > > > > >>> > > > > > > > On Mon, Mar 9, 2015 at 5:19 PM Andrew Grieve < > >>> > > agri...@chromium.org > >>> > > > > > >>> > > > > > > wrote: > >>> > > > > > > > > >>> > > > > > > > > Here's an example: > >>> > > > > > > > > > >>> > > > > > > > > ConfigXmlParser parser = new ConfigXmlParser(); > >>> > > > > > > > > parser.parse(activity); > >>> > > > > > > > > webView.init(cordova, parser.getPluginEntries(), > >>> > > > > > > > parser.getPreferences()); > >>> > > > > > > > > > >>> > > > > > > > > Feel free to iterate if you think the API is too > obtuse, > >>> but > >>> > I > >>> > > > > think > >>> > > > > > > it's > >>> > > > > > > > > good to allow a file-less mode, and to allow different > >>> > WebViews > >>> > > > to > >>> > > > > > have > >>> > > > > > > > > different settings. > >>> > > > > > > > > > >>> > > > > > > > > > >>> > > > > > > > > > >>> > > > > > > > > > >>> > > > > > > > > On Mon, Mar 9, 2015 at 8:08 PM, Joe Bowser < > >>> > bows...@gmail.com> > >>> > > > > > wrote: > >>> > > > > > > > > > >>> > > > > > > > > > Do you have an example of how this would work? This > >>> seems > >>> > to > >>> > > > be a > >>> > > > > > lot > >>> > > > > > > > > more > >>> > > > > > > > > > complex than it needs to be. > >>> > > > > > > > > > > >>> > > > > > > > > > On Mon, Mar 9, 2015 at 5:05 PM Andrew Grieve < > >>> > > > > agri...@chromium.org > >>> > > > > > > > >>> > > > > > > > > wrote: > >>> > > > > > > > > > > >>> > > > > > > > > > > It's so that you can have multiple CordovaWebViews > >>> that > >>> > use > >>> > > > > > > different > >>> > > > > > > > > > > configs within one application. It's also so that > you > >>> > don't > >>> > > > > have > >>> > > > > > to > >>> > > > > > > > > have > >>> > > > > > > > > > a > >>> > > > > > > > > > > config.xml if you prefer to build up your config in > >>> code > >>> > > > > instead. > >>> > > > > > > > > > > > >>> > > > > > > > > > > I don't think loadConfig() is deprecated. It has > >>> > > > > > > > > > > a @SuppressWarnings("deprecation"), which just > >>> silences a > >>> > > > > warning > >>> > > > > > > > > about > >>> > > > > > > > > > it > >>> > > > > > > > > > > setting the config of the Config class (which is > >>> done for > >>> > > > > > backwards > >>> > > > > > > > > > > compatibility). > >>> > > > > > > > > > > > >>> > > > > > > > > > > > >>> > > > > > > > > > > On Mon, Mar 9, 2015 at 3:54 PM, Joe Bowser < > >>> > > > bows...@gmail.com> > >>> > > > > > > > wrote: > >>> > > > > > > > > > > > >>> > > > > > > > > > > > OK, this actually makes using the WebView as a > >>> > component > >>> > > a > >>> > > > > lot > >>> > > > > > > > > harder, > >>> > > > > > > > > > > > since you now have to have this loadConfig method > >>> which > >>> > > you > >>> > > > > > also > >>> > > > > > > > > marked > >>> > > > > > > > > > > for > >>> > > > > > > > > > > > deprecation required to get all of the necessary > >>> > > attributes > >>> > > > > out > >>> > > > > > > of > >>> > > > > > > > > > this. > >>> > > > > > > > > > > > I'm pretty sure this is a major step backwards in > >>> that > >>> > > > people > >>> > > > > > > > looking > >>> > > > > > > > > > to > >>> > > > > > > > > > > > use Cordova as a component now have to jump > through > >>> > > > > additional > >>> > > > > > > > hoops > >>> > > > > > > > > to > >>> > > > > > > > > > > get > >>> > > > > > > > > > > > this to work. What is the benefit of deprecating > >>> the > >>> > > > Config > >>> > > > > > > static > >>> > > > > > > > > > class > >>> > > > > > > > > > > > and replacing it with the ConfigXmlParser again? > I > >>> > don't > >>> > > > > > remember > >>> > > > > > > > why > >>> > > > > > > > > > > this > >>> > > > > > > > > > > > was done. > >>> > > > > > > > > > > > > >>> > > > > > > > > > > > On Mon, Mar 9, 2015 at 9:04 AM Andrew Grieve < > >>> > > > > > > agri...@chromium.org > >>> > > > > > > > > > >>> > > > > > > > > > > wrote: > >>> > > > > > > > > > > > > >>> > > > > > > > > > > > > On Mon, Mar 9, 2015 at 11:56 AM, Joe Bowser < > >>> > > > > > bows...@gmail.com > >>> > > > > > > > > >>> > > > > > > > > > wrote: > >>> > > > > > > > > > > > > > >>> > > > > > > > > > > > > > On Mon, Mar 9, 2015 at 7:39 AM Andrew Grieve > < > >>> > > > > > > > > agri...@chromium.org > >>> > > > > > > > > > > > >>> > > > > > > > > > > > > wrote: > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > You can now instantiate a CordovaWebView > >>> without > >>> > a > >>> > > > > > > > config.xml, > >>> > > > > > > > > > and > >>> > > > > > > > > > > > > > without > >>> > > > > > > > > > > > > > > using Config. This happened when I added an > >>> > > "init()" > >>> > > > > > method > >>> > > > > > > > to > >>> > > > > > > > > > > > > > > CordovaWebView. You can pass in a > >>> > > CordovaPreferences > >>> > > > > > > object, > >>> > > > > > > > > and > >>> > > > > > > > > > a > >>> > > > > > > > > > > > list > >>> > > > > > > > > > > > > > of > >>> > > > > > > > > > > > > > > PluginEntry. Maybe we just need a better > >>> comment > >>> > on > >>> > > > > > Config > >>> > > > > > > > > saying > >>> > > > > > > > > > > to > >>> > > > > > > > > > > > > use > >>> > > > > > > > > > > > > > > these instead? > >>> > > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > Where does one get this PluginEntry list when > >>> > they're > >>> > > > > > > > embedding a > >>> > > > > > > > > > > > > WebView? > >>> > > > > > > > > > > > > > This needs to be documented or at least put > in > >>> the > >>> > > test > >>> > > > > > that > >>> > > > > > > > > tests > >>> > > > > > > > > > > this > >>> > > > > > > > > > > > > use > >>> > > > > > > > > > > > > > case. > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > > That has nothing to do with InAppBrowser, > >>> this > >>> > is > >>> > > > to > >>> > > > > do > >>> > > > > > > > with > >>> > > > > > > > > > > > > embedding > >>> > > > > > > > > > > > > > a > >>> > > > > > > > > > > > > > > > WebView inside an Android application. I > >>> don't > >>> > > > think > >>> > > > > > you > >>> > > > > > > > > > > understand > >>> > > > > > > > > > > > > > what > >>> > > > > > > > > > > > > > > I > >>> > > > > > > > > > > > > > > > mean when I say the embedded use case. > >>> > > > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > Maybe try explaining a bit more? > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > Even though you edited the test that > explicitly > >>> > > covers > >>> > > > > this > >>> > > > > > > > use, > >>> > > > > > > > > > > case, > >>> > > > > > > > > > > > > and > >>> > > > > > > > > > > > > > even though we've talked about using > >>> CordovaWebView > >>> > > as > >>> > > > an > >>> > > > > > > > Android > >>> > > > > > > > > > > View > >>> > > > > > > > > > > > > for > >>> > > > > > > > > > > > > > over a year, you need it explained more? > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > So, not everyone wants to use all of Cordova, > >>> for > >>> > > many > >>> > > > > > > reasons. > >>> > > > > > > > > > > > Instead, > >>> > > > > > > > > > > > > > they really just want to take advantage of > the > >>> > > WebView > >>> > > > > > > > component > >>> > > > > > > > > in > >>> > > > > > > > > > > > their > >>> > > > > > > > > > > > > > native apps so that they can create hybrid > apps > >>> > that > >>> > > > are > >>> > > > > > > mostly > >>> > > > > > > > > > > native > >>> > > > > > > > > > > > > with > >>> > > > > > > > > > > > > > only some parts that use Cordova. This is > >>> where > >>> > you > >>> > > > > would > >>> > > > > > > > > declare > >>> > > > > > > > > > > your > >>> > > > > > > > > > > > > > view in your layout XML like this: > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > <org.apache.cordova.engine.SystemWebView > >>> > > > > > > > > > > > > > > android:id="@+id/WebViewComponent" > >>> > > > > > > > > > > > > > > android:layout_width="match_parent" > >>> > > > > > > > > > > > > > > >>> android:layout_height="match_parent"> > >>> > > > > > > > > > > > > > </org.apache.cordova.engine.SystemWebView> > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > And then, in the activity start up your view > >>> like > >>> > > this: > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > private CordovaWebView webInterface; > >>> > > > > > > > > > > > > > private CordovaInterfaceImpl > systemInterface > >>> = > >>> > new > >>> > > > > > > > > > > > > > CordovaInterfaceImpl(this); > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > //Set up the webview > >>> > > > > > > > > > > > > > SystemWebView webView = > (SystemWebView) > >>> > > > > > > > > > > > > > findViewById(R.id.WebViewComponent); > >>> > > > > > > > > > > > > > webInterface = new > >>> CordovaWebViewImpl(this, > >>> > > new > >>> > > > > > > > > > > > > > SystemWebViewEngine(webView)); > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > Config.init(); > >>> > > > > > > > > > > > > > webInterface.init(systemInterface, > >>> > > > > > > > > > > Config.getPluginEntries(), > >>> > > > > > > > > > > > > > Config.getPreferences()); > >>> > > > > > > > > > > > > > > webView.loadUrl(Config.getStartUrl()); > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > Right now, we're getting the configuration > >>> from the > >>> > > > > Config > >>> > > > > > > > class, > >>> > > > > > > > > > > > because > >>> > > > > > > > > > > > > > we at least have access to this. If we don't > >>> have > >>> > > > this, > >>> > > > > > how > >>> > > > > > > do > >>> > > > > > > > > > > people > >>> > > > > > > > > > > > > get > >>> > > > > > > > > > > > > > access to the list of plugin entries > specified > >>> in > >>> > > > > > Config.xml? > >>> > > > > > > > > I'm > >>> > > > > > > > > > > > pretty > >>> > > > > > > > > > > > > > sure we still want to support this feature. > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > Does that make sense? > >>> > > > > > > > > > > > > > > >>> > > > > > > > > > > > > > >>> > > > > > > > > > > > > I gotcha. So, I think the answer is to use > >>> > > > > ConfigXmlParser() > >>> > > > > > to > >>> > > > > > > > > > extract > >>> > > > > > > > > > > > the > >>> > > > > > > > > > > > > information required by init. You shouldn't > need > >>> the > >>> > > call > >>> > > > > > > > > > Config.init() > >>> > > > > > > > > > > > at > >>> > > > > > > > > > > > > all. > >>> > > > > > > > > > > > > > >>> > > > > > > > > > > > > >>> > > > > > > > > > > > >>> > > > > > > > > > > >>> > > > > > > > > > >>> > > > > > > > > >>> > > > > > > > >>> > > > > > > >>> > > > > > >>> > > > > > >>> > > > > > >>> > > > > -- > >>> > > > > Carlos Santana > >>> > > > > <csantan...@gmail.com> > >>> > > > > > >>> > > > > >>> > > > >>> > > >>> > > >>> > > >>> > -- > >>> > Carlos Santana > >>> > <csantan...@gmail.com> > >>> > > >>> > >> > >> > >> > >> -- > >> Carlos Santana > >> <csantan...@gmail.com> > >> > > > > > > > > -- > > Carlos Santana > > <csantan...@gmail.com> > > > > > > -- > Carlos Santana > <csantan...@gmail.com> >