US 12,340,232 B2
Systems and methods for integrating mobile application plug-ins
Jean Elie Bovet, Los Angeles, CA (US); Stephen Goldberg, Frisco, TX (US); Alexander Sikora, Cincinnati, OH (US); Joao Henrique Pimentel Wanderley Neves, San Mateo, CA (US); Nitish Khadiya, Sunnyvale, CA (US); and Saket Agarwal, San Mateo, CA (US)
Assigned to Salesforce, Inc., San Francisco, CA (US)
Filed by Salesforce, Inc., San Francisco, CA (US)
Filed on Nov. 6, 2020, as Appl. No. 17/091,458.
Prior Publication US 2022/0147375 A1, May 12, 2022
Int. Cl. G06F 9/445 (2018.01); G06F 8/61 (2018.01); G06F 8/65 (2018.01); G06F 9/54 (2006.01)
CPC G06F 9/44526 (2013.01) [G06F 8/61 (2013.01); G06F 8/65 (2013.01); G06F 9/541 (2013.01); G06F 8/62 (2013.01); G06F 2209/541 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method, comprising:
at run-time of a host application, initializing, by the host application, a plurality of plug-ins, wherein:
the host application comprises a native component and communicates services of the host application to the plurality of plug-ins with a plug-in service provider interface (SPI);
the host application injects at run-time a plug-in application programming interface (API) that is specific to a type of the host application into one or more of the plurality of plug-ins; and
the one or more of the plurality of plug-ins communicates services of the one or more of the plurality of plug-ins to the host application with the plug-in API;
in response to initializing the plurality of plug-ins, establishing, during run-time of the host application, a bi-directional contract between the host application and the plurality of plug-ins with the plug-in SPI and the plug-in API, wherein the bi-directional contract defines a set of supported services requested and cross-accessed by a plurality of components comprising the native component of the host application and the plurality of plug-ins;
detecting a request for a service from a first component of the native component and the plurality of plug-ins; and
in response to determining that the requested service is one of the supported services, routing the requested service to a second component of the native component and the plurality of plug-ins, the second component being different than the first component.