NetworkableObject types for each web view controller supported by PAPI. A Web View Controller is a network object that represents a web view and whose methods facilitate communication between its associated web view and extensions that want to interact with it. WebViewControllers can be created by IWebViewProvider of the same webViewType. Extensions can add web view controllers with corresponding webViewTypes by adding details to their .d.ts file and registering a web view controller in their web view provider's getWebView function with papi.webViewProviders.registerWebViewController. If you want to create web view controllers, we recommend you create a class derived from the abstract class WebViewFactory, which automatically manage the lifecycle of the web view controllers for you.

Note: The keys of this interface are the webViewTypes for the web views associated with these web view controllers. They must consist of two strings separated by at least one period. We recommend one period and lower camel case in case we expand the api in the future to allow dot notation.

An extension can extend this interface to add a type for the web view controller it registers by adding the following to its .d.ts file (in this example, we are adding the 'helloSomeone.peopleWebView' web view controller type):

declare module 'papi-shared-types' {
export type PeopleWebViewController = NetworkableObject<{
setSelectedPerson(name: string): Promise<boolean>;
testRandomMethod(things: string): Promise<string>;
}>;

export interface WebViewControllers {
'helloSomeone.peopleWebView': PeopleWebViewController;
}
}
interface WebViewControllers {
    "platform.placeholderWebView": NetworkableObject<
        { runPlaceholderStuff(thing: string): Promise<boolean> },
    >;
    "platform.stuffWebView": NetworkableObject<
        { doStuff(thing: string): Promise<boolean> },
    >;
}

Properties

"platform.placeholderWebView": NetworkableObject<
    { runPlaceholderStuff(thing: string): Promise<boolean> },
>
"platform.stuffWebView": NetworkableObject<
    { doStuff(thing: string): Promise<boolean> },
>