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>

Reply via email to