Disregard my last post. I got it working. 

On Sunday, February 1, 2015 at 12:03:29 AM UTC-8, Ron Williams wrote:
>
> I hate to bump an old thread but i'm looking to achieve the same thing 
> here. Are there examples out there of making java views accessible to the 
> http api for phonegap style apps? I read through these posts and have had 
> no success getting it to work.
>
> On Monday, March 17, 2014 at 7:49:31 AM UTC-7, Ami Kapadia wrote:
>>
>> I have solved this issue by this:
>>
>> Android Code: To create view.
>>
>> Database db = server.getDatabase(strDbName);
>> db.open();
>> listenPort = startCBLListener(DEFAULT_LISTEN_PORT, server);
>>
>> View v1 = db.getView(String.format("%s/%s",
>> strDbName,
>>                         "getrecords_typewise"));
>>
>> //Here strDbName = database name, "getrecords_typewise" = View name.
>>
>> v1.setMap(new Mapper() 
>> {
>> @Override
>>  public void map(Map<String, Object> document, Emitter emitter) 
>> {
>>  Object docType = document.get("type");
>>  if (docType != null && document.get("is_active") != null && 
>> document.get("is_active").equals(true))
>> {
>>              emitter.emit(new Object[]{docType.toString()}, document);
>>         }
>>  }
>> }, strVersion);
>> db.registerView(v1);
>>
>> Phonegap  Code:
>> config.views(["getrecords_typewise", {
>>     startkey : ["contact"],
>>             endkey : ["contact"],
>>     descending : true
>>     }], function(err, view)
>>     {
>>
>>  var len = view['rows'].length;
>>
>>     var counter=0;
>>     var data=[];
>>     if(view['rows']!=null && view['rows'].length>0){
>>     for(j=0;j<view['rows'].length;j++)
>>     {
>>                               data.push(view['rows'][j].value);
>>                      }
>>                }
>>
>>           });
>>
>>
>> On Sat, Feb 15, 2014 at 6:05 AM, Traun Leyden <[email protected]> 
>> wrote:
>>
>>>
>>>
>>> On Thursday, February 13, 2014, Ami Gandhi <[email protected]> wrote:
>>>
>>>>
>>>>
>>>> But calling view from Phonegap is very slow!
>>>> Having this logs all the time.
>>>> 02-14 00:45:05.685: D/dalvikvm(6462): WAIT_FOR_CONCURRENT_GC blocked 
>>>> 14ms
>>>> 02-14 00:45:05.715: V/CBLDatabase(6462):   call map for sequence=14
>>>> 02-14 00:45:05.750: D/dalvikvm(6462): GC_CONCURRENT freed 492K, 27% 
>>>> free 13190K/17863K, paused 2ms+2ms, total 23ms
>>>>
>>>
>>> Have you taken a look at the Android Monitor / DDMS to see where the 
>>> memory is being used?
>>>  
>>>
>>>>
>>>> So, moving on native approach.
>>>>
>>>
>>> Did you follow the instructions from Daniel Carr above?  Did you comment 
>>> out the call to "CBLView.setCompiler(new CBLJavaScriptViewCompiler());"
>>>
>>> Another thing that could be going wrong, are you defining a view with 
>>> the exact same name for the javascript based view you defined?  I would 
>>> recommend using a different name so they don't conflict.
>>>  
>>>
>>>             
>>>> But it is not working when I call view "amiview" from phonegap.
>>>>
>>>
>>> Is there an error message?
>>>
>>>
>>>   
>>>
>>>> On Thursday, February 13, 2014 11:21:18 PM UTC+5:30, Traun Leyden wrote:
>>>>>
>>>>>
>>>>> I think there should be examples of that in https://github.com/
>>>>> couchbaselabs/TodoLite-PhoneGap.
>>>>>
>>>>>  It should essentially be the same as making a view query via REST to 
>>>>> CouchDB, so you can also check the CouchDB docs.
>>>>>
>>>>> @Chris -- I guess the recommended js library for talking to Couchbase 
>>>>> Lite from javascript is "coax/hoax" right?  Is there any others that 
>>>>> people 
>>>>> should be aware of that will make their lives easier?  
>>>>>
>>>>> On Thursday, February 13, 2014, Ami Gandhi <[email protected]> wrote:
>>>>>
>>>>> Hi!
>>>>> Can you tell me how to query CBLView from phonegap android?
>>>>> Also, how to set startkey and endkey?
>>>>>
>>>>> On Monday, October 21, 2013 11:28:38 PM UTC+5:30, Traun Leyden wrote:
>>>>>
>>>>> Thanks for contributing this!
>>>>>
>>>>>
>>>>> On Sun, Oct 20, 2013 at 5:16 PM, Daniel Carr <[email protected]> 
>>>>> wrote:
>>>>>
>>>>> Thanks for your replies.
>>>>>
>>>>> If anyone is keen to try this, it's pretty easy. I know very little 
>>>>> java and was able to work it out, and the performance is way better.
>>>>>
>>>>>
>>>>> To get it to work, clone the git repo and import the modified cloned 
>>>>> repo as a phonegap plugin:
>>>>>
>>>>> git clone https://github.com/couchbaselabs/Couchbase-Lite-PhoneGap-
>>>>> Plugin.git
>>>>> cd project
>>>>> phonegap local plugin add ../Couchbase-List-PhoneGap-Plugin
>>>>>
>>>>>
>>>>> Every time you modify the plugin, you need to remove and add it again.
>>>>>
>>>>> phonegap local plugin remove com.couchbase.lite.phonegap
>>>>> phonegap local plugin add ../Couchbase-List-PhoneGap-Plugin
>>>>>
>>>>>
>>>>>
>>>>> As a proof of concept, I edited /src/android/CBLite.java file in 
>>>>> Cordova-Lite-PhoneGap-Plugin.
>>>>>
>>>>> Add these to the imports:
>>>>>
>>>>> import com.couchbase.cblite.CBLDatabase;
>>>>> import com.couchbase.cblite.CBLViewMapBlock;
>>>>> import com.couchbase.cblite.CBLViewMapEmitBlock;
>>>>>
>>>>>
>>>>> Remove the Javascript View thingy:
>>>>>
>>>>> -                       CBLView.setCompiler(new 
>>>>> CBLJavaScriptViewCompiler());
>>>>>
>>>>>
>>>>>
>>>>> Declare a view as described here: http://docs.couchbase.co
>>>>> m/couchbase-lite/cbl-android/#working-with-views
>>>>>
>>>>>
>>>>>
>>>>> e.g.: (sorry about the dodgy tabulation)
>>>>>
>>>>>
>>>>> @@ -41,12 +45,25 @@ public class CBLite extends CordovaPlugin {
>>>>>  
>>>>>                         CBLURLStreamHandlerFactory.reg
>>>>> isterSelfIgnoreError();
>>>>>  
>>>>> -                       CBLView.setCompiler(new 
>>>>> CBLJavaScriptViewCompiler());
>>>>> -
>>>>>                         String filesDir = this.cordova.getActivity().
>>>>> getFilesDir()
>>>>>                                         .getAbsolutePath();
>>>>>                         CBLServer server = startCBLite(filesDir);
>>>>> -
>>>>> +                       
>>>>> +                       CBLDatabase db = server.getDatabaseNamed("
>>>>> treatment");
>>>>> +                       CBLView testView = db.getViewNamed("ivetTest/
>>>>> test");
>>>>> +                       testView.setMapReduceBlocks(new 
>>>>> CBLViewMapBlock() {
>>>>> +
>>>>> +                   @Override
>>>>> +                   public void map(Map<String, Object> document, 
>>>>> CBLViewMapEmitBlock emitter) {
>>>>> +                       String type = (String)document.get("Type");
>>>>> +                       if( "TreatmentRecord".equals(
>>>>>
>>>>>  -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "Couchbase Mobile" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/mobile-couchbase/bc488580-9fab-4f22-8a51-a0bc697e931f%40googlegroups.com
>>>> .
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>  -- 
>>> You received this message because you are subscribed to a topic in the 
>>> Google Groups "Couchbase Mobile" group.
>>> To unsubscribe from this topic, visit 
>>> https://groups.google.com/d/topic/mobile-couchbase/lAt7w3ntbKo/unsubscribe
>>> .
>>> To unsubscribe from this group and all its topics, send an email to 
>>> [email protected].
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/mobile-couchbase/CACSSHCHskg2tQ2ce8TckCh0j0PFZ314aidUP6UfztFhn2%3DqwVg%40mail.gmail.com
>>> .
>>>
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"Couchbase Mobile" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mobile-couchbase/ad5a34c3-c95c-47ce-a2c6-2a50ecb6c71b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to