## PurchasePathExtension

This interface allows you to create a Purchase Path extension for dynamic customization of the embedded browser user experience.

## Summary

| Public Methods |
| --- |
| abstract<br> <br> <br> <br> <br> void | [onClosed](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePathExtension.html#onClosed())()<br> <br> <br>Notify the host application that browser was closed. |
| abstract<br> <br> <br> <br> <br> void | [onInitialized](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePathExtension.html#onInitialized(com.usebutton.sdk.purchasepath.BrowserInterface))( [BrowserInterface](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.html) browser)<br> <br> <br>Notify the host application the browser was initialized before content has been displayed. |
| abstract<br> <br> <br> <br> <br> void | [onPageNavigate](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePathExtension.html#onPageNavigate(com.usebutton.sdk.purchasepath.BrowserInterface,%20com.usebutton.sdk.purchasepath.BrowserPage))( [BrowserInterface](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.html) browser, [BrowserPage](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserPage.html) page)<br> <br> <br>Notify the host application that the browser has started to receive content that is neither<br>a product nor a purchase. |
| abstract<br> <br> <br> <br> <br> void | [onProductNavigate](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePathExtension.html#onProductNavigate(com.usebutton.sdk.purchasepath.BrowserInterface,%20com.usebutton.sdk.purchasepath.ProductPage))( [BrowserInterface](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.html) browser, [ProductPage](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/ProductPage.html) page)<br> <br> <br>Notify the host application that the browser has started to receive content that is a<br>product page. |
| abstract<br> <br> <br> <br> <br> void | [onPurchaseNavigate](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePathExtension.html#onPurchaseNavigate(com.usebutton.sdk.purchasepath.BrowserInterface,%20com.usebutton.sdk.purchasepath.PurchasePage))( [BrowserInterface](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.html) browser, [PurchasePage](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePage.html) page)<br> <br> <br>Notify the host application that the browser has started to receive content that is a<br>purchase page. |
| abstract<br> <br> <br> <br> <br> void | [onStartNavigate](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePathExtension.html#onStartNavigate(com.usebutton.sdk.purchasepath.BrowserInterface))( [BrowserInterface](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.html) browser)<br> <br> <br>Notify the host application that a new page has started loading. |

## Public Methods

#### public       abstract     void  onClosed()

Notify the host application that browser was closed. This does not mean a purchase was completed.

This can happen when the user dismisses the browser or chooses to install the native app.

#### public       abstract     void  onInitialized( [BrowserInterface](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.html) browser)

Notify the host application the browser was initialized before content has been displayed.

##### Parameters

| browser | The interface to the browser object that can be used to customize the display. |

#### public       abstract     void  onPageNavigate( [BrowserInterface](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.html) browser, [BrowserPage](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserPage.html) page)

Notify the host application that the browser has started to receive content that is neither
a product nor a purchase. (ex. home page, category page, etc.)

##### Parameters

| browser | The interface to the browser object that can be used to customize the display. |
| page | The browser content. |

#### public       abstract     void  onProductNavigate( [BrowserInterface](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.html) browser, [ProductPage](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/ProductPage.html) page)

Notify the host application that the browser has started to receive content that is a
product page.

##### Parameters

| browser | The interface to the browser object that can be used to customize the display. |
| page | The browser content. |

#### public       abstract     void  onPurchaseNavigate( [BrowserInterface](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.html) browser, [PurchasePage](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/PurchasePage.html) page)

Notify the host application that the browser has started to receive content that is a
purchase page.

##### Parameters

| browser | The interface to the browser object that can be used to customize the display. |
| page | The browser content. |

#### public       abstract     void  onStartNavigate( [BrowserInterface](https://building.usebutton.com/button-android/latest/reference/com/usebutton/sdk/purchasepath/BrowserInterface.html) browser)

Notify the host application that a new page has started loading.

##### Parameters

| browser | The interface to the browser object that can be used to customize the display. |
