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]<javascript:>
> > 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.com/couchbase-lite/cbl-android/#working-with-views
>>
>>
>>
>> e.g.: (sorry about the dodgy tabulation)
>>
>>
>> @@ -41,12 +45,25 @@ public class CBLite extends CordovaPlugin {
>>>  
>>>                         
>>> CBLURLStreamHandlerFactory.registerSelfIgnoreError();
>>>  
>>> -                       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(type) ) {
>>> +                           emitter.emit( document.get("_id"), 
>>> document.get("Location") );
>>> +                                       
>>> +                       }
>>> +
>>> +                   }
>>> +               }, null, "1.1"); 
>>> +                       
>>>                         listenPort = 
>>> startCBLListener(DEFAULT_LISTEN_PORT, server);
>>>  
>>>                         System.out.println("initCBLite() completed 
>>> successfully");
>>
>>
>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Mobile Couchbase" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> 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/3bd01641-1b76-41fa-9164-ecf64ef35257%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to