This is a migrated thread and some comments may be shown as answers.

PSPDFKit Plugin Integration

16 Answers 345 Views
Apache Cordova
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
Nader
Top achievements
Rank 1
Nader asked on 23 Apr 2014, 02:55 PM
I am developing an app where I need to annotate/highlight PDFs. I found a framework called PSPDFKit http://pspdfkit.com/ which has a PhoneGap plugin https://github.com/PSPDFKit/PSPDFKit-Cordova ready to use. I added this plugin to a project I developed on XCode with no problems but I am unable to add this plugin to a project built using AppBuilder as this plugin most probably does not comply with the "Plugman" specs. Can anybody help me integrate this as a plugin into an AppBuilder project?

16 Answers, 1 is accepted

Sort by
0
Tina Stancheva
Telerik team
answered on 25 Apr 2014, 02:51 PM
Hello Nader,

You can take a look at the Working with Custom Plugins section of our documentation as it can help you add a custom plug-in in an AppBuilder application. It contains information on how to make a custom plugin Plugman-Compatible.

I hope the information will help you integrate the PSPDFKit-Cordova plugin in your app.

Regards,
Tina Stancheva
Telerik
 

Share what you think about AppBuilder and Telerik Platform with us in our feedback portal, so we can become even better!

 
0
Nader
Top achievements
Rank 1
answered on 26 Apr 2014, 07:53 AM
Thank you Tina for replying to my post.
I have been able to implement many custom plugins with AppBuilder with no issues, but the problem here is that this plugin uses a custom framework which contains many header files.
I uploaded the framework into the "ios" folder and linked it in the "plugin.xml" file. I even linked every single header file but the main header file "plugin.h" does not seem to find the required imports "ex <import pspdfkit/pspdfkit.h>".
I have not seen any examples or tutorials explaining how to implement a custom framework into a plugman-compatible plugin.
Could you please help integrate such framework?
0
Nader
Top achievements
Rank 1
answered on 26 Apr 2014, 08:42 AM
I got this plugin to work. I forgot to add the "custom=true" attribute to my framework import in the "plugin.xml" file.
Old import: <framework src="src/ios/PSPDFKit.framework" />
New import (working): <framework src="src/ios/PSPDFKit.framework" custom="true" />
0
Tobias
Top achievements
Rank 1
answered on 07 Jan 2015, 11:38 AM
Hey Nader, I try to import this PSPDFKit aswell. Could you tell me, which files I have to use for import? Within this folder(https://github.com/PSPDFKit/PSPDFKit-Cordova), there are still different folders. What do I really need? Thanks for your help! 
Best regards, Tobias
0
Kaloyan
Telerik team
answered on 12 Jan 2015, 01:41 PM
Hi Tobias,

I am not fully aware what manual changes are required for this custom Cordova plugin, in order to run successfully, but I think the files that you will definitely be needing are:
  • The plugin.xml file in the root folder.
  • The pspdfkit.js file (found here). It implements the JavaScript API you will be using in the hybrid application. Normally, it is placed under a www folder inside the plugin and referred from there in the plugin.xml file.
  • The PSPDFKitPlugin.h and the PSPDFKitPlugin.m (found here).

Finally, you will need the PSPDFKit.embeddedframework folder, manually imported as explained in the git repo. For this step, you might need to contact the plugin creators for more assistance.

I hope this helps.

Regards,
Kaloyan
Telerik
 

Visit the Telerik Verified Plugins Marketplace and get the custom Cordova plugin you need, already tweaked to work seamlessly with AppBuilder.

 
0
Tobias
Top achievements
Rank 1
answered on 19 Jan 2015, 12:19 PM
Hi Kaloyan

Thank you very much for your response.
I tried to build up a zip-package for the implementation to AppBuilder. This is my package:

- com.pspdfkit.cordovaplugin
-- src
--- ios
---- PSPDFKitPlugin.h
---- PSPDFKitPlugin.m

-- www
--- PSPDFKit.framework (folder)
--- pspdfkit.js

-- plugin.xml
-- README.md

The plugin.xml includes following:

<?xml version="1.0" encoding="UTF-8"?>
<plugin id="com.pspdfkit.cordovaplugin" version="1.0.0" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
    <engines>
        <engine name="cordova" version=">=3.4.0"/>
    </engines>
    <name>PSPDFKitPlugin</name>
    <license>Copyright 2011-2014 PSPDFKit GmbH. All rights reserved.
THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY AUSTRIAN COPYRIGHT LAW AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE PSPDFKIT LICENSE AGREEMENT. UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
    <platform name="ios">
        <config-file parent="/*" target="config.xml">
            <feature name="PSPDFKitPlugin">
                <param name="ios-package" value="PSPDFKitPlugin" />
            </feature>
        </config-file>
 
        <js-module src="www/pspdfkit.js" name="PSPDFKitPlugin">
            <clobbers target="PSPDFKitPlugin" />
        </js-module>   
 
        <source-file src="src/ios/PSPDFKitPlugin.m" />
        <header-file src="src/ios/PSPDFKitPlugin.h" />
 
        <framework src="www/PSPDFKit.framework" custom="true" />
         
        <framework src="libsqlite3.dylib" />
        <framework src="libxml2.dylib" />
        <framework src="CoreText.framework" />
        <framework src="QuartzCore.framework" />
        <framework src="MessageUI.framework" />
        <framework src="libz.dylib" />
        <framework src="ImageIO.framework" />
        <framework src="CoreMedia.framework" />
        <framework src="MediaPlayer.framework" />
        <framework src="CFNetwork.framework" />
        <framework src="AVFoundation.framework" />
        <framework src="AssetsLibrary.framework" />
        <framework src="Security.framework" />
        <framework src="QuickLook.framework" />
        <framework src="AudioToolbox.framework" />
        <framework src="CoreData.framework" />
        <framework src="CoreTelephony.framework" />
        <framework src="SystemConfiguration.framework" />
        <framework src="Accelerate.framework" />
    </platform>
    <info>
         
    Please add plugins/com.pspdfkit.cordovaplugin/PSPDFKit.embeddedframework to your Xcode project file in platforms/ios.
     
    Plugin usage example:
 
    PSPDFKitPlugin.present('file.pdf', {
        pageTransition: 'curl',
        editableAnnotationTypes: ['FreeText', 'Signature']
    });
 
    </info>
</plugin>

I can upload this zip-folder to AppBuilder, but when I want to "build & deploy" it to my iPad, it just says "Build faild."
When I remove this plugin, everything works fine. I doesn't give me any explenation of the failure.

 I am really sorry, to bother you guys again, but I'm too stupid to run this plugin and I really would like to.

Best regards, Tobias


0
Kaloyan
Telerik team
answered on 22 Jan 2015, 11:49 AM
Hi again Tobias,

It is important to note that PSPDFKit framework requires the iOS 8 SDK. Thus, you will need to change to Cordova version of your application to Crodova 3.7 from within your project properties. This is so, as te iOS 8 SDK/XCode 6 support in AppBuilder is released only for Cordova 3.7 apps.

Further, could you check if there are any error messages in the AppBuilder's output console after the build failure? If so, please share them with us.

I hope this helps and I am looking forward to your reply.

Regards,
Kaloyan
Telerik
 

Visit the Telerik Verified Plugins Marketplace and get the custom Cordova plugin you need, already tweaked to work seamlessly with AppBuilder.

 
0
Nader
Top achievements
Rank 1
answered on 22 Jan 2015, 12:37 PM
Hi Kaloyan,

I tried setting my cordova version to v3.7, but unfortunately it is still giving me the same error as I reported in this ticket.

Regards
0
Tobias
Top achievements
Rank 1
answered on 22 Jan 2015, 01:58 PM
Hi Kaloyan,

I updated the settings to cordova 3.7, but still have the BUILD FAIL.

this is the log:

[2015-01-22 14:52:46.248] Log (Exception,High): System.Net.Http.HttpRequestException: SR.net_http_client_execution_error ---> System.Net.WebException: The underlying connection was closed: A connection that was expected to be kept alive was closed by the server. ---> System.IO.IOException: Unable to read data from the transport connection: Eine vorhandene Verbindung wurde vom Remotehost geschlossen. ---> System.Net.Sockets.SocketException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen
   at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)
   at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
   --- End of inner exception stack trace ---
   at System.Net.Security._SslStream.EndRead(IAsyncResult asyncResult)
   at System.Net.TlsStream.EndRead(IAsyncResult asyncResult)
   at System.Net.PooledStream.EndRead(IAsyncResult asyncResult)
   at System.Net.Connection.ReadCallback(IAsyncResult asyncResult)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at Telerik.BlackDragon.Client.ServerClient.HttpClientHandlerBase.GetResponseCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---
 
Server stack trace:
 
 
Exception rethrown at [0]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Telerik.BlackDragon.Client.ServerClient.ProxyAuthenticatingHttpClientHandlerBase.<SendAsync>d__0.MoveNext()
 
Exception rethrown at [1]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Telerik.BlackDragon.Client.ServerClient.HttpServiceContext.TimeoutHandler.<SendAsync>d__1b.MoveNext()
 
Exception rethrown at [2]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Telerik.BlackDragon.Client.ServerClient.HttpServiceContext.<ProcessRequestAsync>d__11.MoveNext()
 
Exception rethrown at [3]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at OperationExecutorExtensions.<RequestAsyncCore>d__11`1.MoveNext()
 
Exception rethrown at [4]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at OperationExecutorExtensions.<RequestAndParseAsync>d__1f`2.MoveNext()
 
Exception rethrown at [5]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Telerik.BlackDragon.Client.Services.Implementation.RemoteBuildService.<BuildProject>d__4.MoveNext()
[2015-01-22 14:52:46.498] Log (Exception,High): System.Net.Http.HttpRequestException: SR.net_http_client_execution_error ---> System.Net.WebException: The underlying connection was closed: A connection that was expected to be kept alive was closed by the server. ---> System.IO.IOException: Unable to read data from the transport connection: Eine vorhandene Verbindung wurde vom Remotehost geschlossen. ---> System.Net.Sockets.SocketException: Eine vorhandene Verbindung wurde vom Remotehost geschlossen
   at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult)
   at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult)
   --- End of inner exception stack trace ---
   at System.Net.Security._SslStream.EndRead(IAsyncResult asyncResult)
   at System.Net.TlsStream.EndRead(IAsyncResult asyncResult)
   at System.Net.PooledStream.EndRead(IAsyncResult asyncResult)
   at System.Net.Connection.ReadCallback(IAsyncResult asyncResult)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
   at Telerik.BlackDragon.Client.ServerClient.HttpClientHandlerBase.GetResponseCallback(IAsyncResult ar)
   --- End of inner exception stack trace ---
 
Server stack trace:
 
 
Exception rethrown at [0]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Telerik.BlackDragon.Client.ServerClient.ProxyAuthenticatingHttpClientHandlerBase.<SendAsync>d__0.MoveNext()
 
Exception rethrown at [1]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Telerik.BlackDragon.Client.ServerClient.HttpServiceContext.TimeoutHandler.<SendAsync>d__1b.MoveNext()
 
Exception rethrown at [2]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Telerik.BlackDragon.Client.ServerClient.HttpServiceContext.<ProcessRequestAsync>d__11.MoveNext()
 
Exception rethrown at [3]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at OperationExecutorExtensions.<RequestAsyncCore>d__11`1.MoveNext()
 
Exception rethrown at [4]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at OperationExecutorExtensions.<RequestAndParseAsync>d__1f`2.MoveNext()
 
Exception rethrown at [5]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Telerik.BlackDragon.Client.Services.Implementation.RemoteBuildService.<BuildProject>d__4.MoveNext()
 
Exception rethrown at [6]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Telerik.BlackDragon.Client.Modules.Cordova.CordovaProject.<Build>d__5.MoveNext()
 
Exception rethrown at [7]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Telerik.BlackDragon.Client.ProjectTypes.MobileCore.BuildManager.<BuildCoreAsync>d__f.MoveNext()
 
Exception rethrown at [8]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Telerik.BlackDragon.Client.ProjectTypes.MobileCore.BuildManager.<BuildAndDownloadAsync>d__5.MoveNext()
 
Exception rethrown at [9]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Telerik.BlackDragon.Client.ProjectTypes.MobileCore.BuildManager.<BuildCurrentProjectAndDownloadApplication>d__0.MoveNext()
 
Exception rethrown at [10]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Telerik.BlackDragon.Client.Mobile.Core.UI.BuildAndDeployService.<GetBinaryPackages>d__35.MoveNext()
 
Exception rethrown at [11]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Telerik.BlackDragon.Client.Mobile.Core.UI.BuildAndDeployService.<BuildAndRunAsyncCore>d__3.MoveNext()
 
Exception rethrown at [12]:
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task)
   at Telerik.BlackDragon.Client.Mobile.Core.UI.BuildAndDeployService.<BuildAndRunAsync>d__0.MoveNext()

Nader, do have the same problem to run the plugin?

Best regards from germany,
Tobias
0
Tobias
Top achievements
Rank 1
answered on 22 Jan 2015, 02:59 PM
What does it mean, when the switch infront of a plugin is inactive, but ON? Might that be a reason, why it does not work? See the attached image...

0
Kaloyan
Telerik team
answered on 27 Jan 2015, 09:02 AM
Hi Tobias,

Thank you for getting back to us.

The exception, that you have posted means a timeout in the AppBuilder client upon cloud build. In other words, it seems like the build of your application is taking more than 10 minutes (which is the maximum allowed time for building a project in the cloud) and we are terminating the build process in order to prevent hangs. Nevertheless, with the latest AppBuilder version, we introduced an optimization, that parses custom plugins a lot faster during our cloud builds. So, could you please try to build your app again and see if the error is still the same (SR.net_http_client_execution_error)?

Further, the switch of the plugin is inactive, because this is a custom Cordova plugin that you have manually imported to your project. At this stage AppBuilder cannot control the state of the plugin and if it should be enabled or disabled. As long as it is imported, it will always be enabled.

I hope this helps.

Regards,
Kaloyan
Telerik
 

Visit the Telerik Verified Plugins Marketplace and get the custom Cordova plugin you need, already tweaked to work seamlessly with AppBuilder.

 
0
Tobias
Top achievements
Rank 1
answered on 30 Jan 2015, 01:07 PM
hey Kaloyan,

thanks for your reply. The new version is working much better on giving error messages. Thanks for that!!!
Now it seems, that AppBuilder is not opening the framework of PSPDFKit (3). I talked to the developers of PSPDFKit and they wondered about that aswell. 
I tried all different kind of pathes (2):

<framework src="www/PSPDFKit.embeddedframework/PSPDFKit.framework" custom="true" />
<framework src="www/PSPDFKit.embeddedframework" custom="true" />
<framework src="www/PSPDFKit.embeddedframework/PSPDFKit.framework" />
<framework src="www/PSPDFKit.embeddedframework" />

On the right (2) you will find the framework in the path structure. Is there any other way to run the framework in AppBuilder, than importing it in the plugin.xml?

Best Regards,
Tobias

 
0
Tina Stancheva
Telerik team
answered on 04 Feb 2015, 02:43 PM
Hi Tobias,

We can reproduce the error but we will need more time to investigate the case further. Please accept my apology for the delay.

I will make sure to update this thread and post more information in the support tickets you submitted as soon as we have more information.

Regards,
Tina Stancheva
Telerik
 

Visit the Telerik Verified Plugins Marketplace and get the custom Cordova plugin you need, already tweaked to work seamlessly with AppBuilder.

 
0
Kaloyan
Telerik team
answered on 09 Feb 2015, 04:01 PM
Hi Tobias,

As replied in your support ticket and the other forum thread:
"The issue you are experiencing is related to a symbolic links used in the plugin's file tree. At this stage, AppBuilder does not support symbolic links because of its hybrid development nature. In order to apply correctly the needed files, you will need to convert each symbolic link to a folder and refer the related files from there. However, we did this for you and you will find a correct implementation of the PSPDFKit plugin attached to my reply. 

Unfortunately, we found that the PSPDFKit.framework is not built against all of the mandatory for AppBuilder iOS architectures. These are armv7, armv7s and arm64. The PSPDFKit.framework is missing the armv7s architecture and this leads to the following error upon cloud build:
Copy Code
Copy Code
    Link: Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_JSContext", referenced from:
      objc-class-ref in PSPDFKit(PSPDFJavaScriptActionEvent.o)
      objc-class-ref in PSPDFKit(PSPDFJSContextJavascriptRuntimeProvider.o)
      objc-class-ref in PSPDFKit(PSPDFFormElement+JSExport.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
 
    Link: ld: file is universal (4 slices) but does not contain a(n) armv7s slice: Cordova370/Plugins/com.pspdfkit.cordovaplugin/PSPDFKit.framework/PSPDFKit file 'Cordova370/Plugins/com.pspdfkit.cordovaplugin/PSPDFKit.framework/PSPDFKit' for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

From this point, there is nothing we can currently do. We even searched for a more suitable version of the above mentioned framework, but to no avail. I would suggest you to contact the PSPDFKit.framework creators and see if they can come up with a version of their framework that is built against all of the needed iOS architectures (armv7, armv7s and arm64). If you get such sources, the only thing you will need to do in order to get the plugin working inside AppBuilder, is to replace the old ones in the attached plugin.

As an addition, we will definitely reconsider the architecture requirements for the AppBuilder iOS cloud builds. Most likely, there will be an option for our users to choose the architectures their apps should be built against. Still, at this stage I cannot give an estimation about the implementation of such functionality.
"

I hope this helps.


Further, please avoid posting on the same matter more than once as duplicate tickets or posts only lead to delays in our response times, due to having more inquiries to look at. Thank you for the understanding.

Regards,
Kaloyan
Telerik
 

Visit the Telerik Verified Plugins Marketplace and get the custom Cordova plugin you need, already tweaked to work seamlessly with AppBuilder.

 
0
Tobias
Top achievements
Rank 1
answered on 11 Feb 2015, 10:29 AM
Hi Kaloyan,

I again wrote to PSPDFKit and recieved this informations:

---------------------------------------------------------

Tobias,
I hate to throw the ball back at AppBuilder, but Apple no longer requires or encourages armv7s - this is the new default since Xcode 6.
It only slightly improves performance on iPhone 5/5c and only if it's a floating point heavy application; but would increase download size and makes compilation times longer - so Apple's decision to stop providing this was a good one.Here's the support matrix explaining the short lifetime of armv7s:

http://iossupportmatrix.com/

Here's the related thread from Apple's developer forums:The reason for including armv7s would be marginal backward compatibility. But the general differences between armv7 and armv7s instruction sets are minor. So if you choose not to include armv7s, the targeted armv7 machine code still runs fine on 32 bit A6 devices, and hardly one will notice performance gap.

https://devforums.apple.com/thread/244407?tstart=0

Someone also wrote a radar and got a reply that this change was indeed intentional.Can you put the AppBuilder engineer in CC? They should drop the armv7s slice; Appcelerator does not require it either.

Peter Steinberger | CEO & Founder

---------------------------------------------------------

They put this into a thread as well now, which you can find here: 

https://support.pspdfkit.com/hc/en-us/articles/202419481


Thanks for your help,
Tobias

https://support.pspdfkit.com/hc/en-us/articles/202419481
0
Kaloyan
Telerik team
answered on 16 Feb 2015, 09:33 AM
Hi Tobias,

Thank you for passing this to us. I have now added this item to our Ideas and Feedback portal. We will do our best to implement it for the future AppBuilder releases. Meanwhile, please let us know if you have anything further to add on the matter. You can also subscribe to the above feature request in order to track its development status. I hope this is okay for you.

P.S. For your valuable feedback, I have added some Telerik points to your account.

Regards,
Kaloyan
Telerik
 

Visit the Telerik Verified Plugins Marketplace and get the custom Cordova plugin you need, already tweaked to work seamlessly with AppBuilder.

 
Tags
Apache Cordova
Asked by
Nader
Top achievements
Rank 1
Answers by
Tina Stancheva
Telerik team
Nader
Top achievements
Rank 1
Tobias
Top achievements
Rank 1
Kaloyan
Telerik team
Share this question
or