Catalog
Use this method to fetch a personalized catalog of purchasable items
let query = CatalogQuery()
Traveler.fetchCatalog(query: query) { (catalog, error) in
}Alternatively you can use the delegate pattern
Traveler.fetchCatalog(query: query, delegate: self)extension MyViewController: CatalogFetchDelegate {
func catalogFetchDidSucceedWith(_ result: Catalog) {
}
func catalogFetchDidFailWith(_ error: Error) {
}
}The UI SDK ships with a view controller which you can use (and/or subclass) to display the catalog. If you wish you can also use them via storyboards, just remember to pass along the Catalog instance.
let catalogResultVC = CatalogResultViewController()
catalogResultVC.catalog = catalog
present(catalogResultVC, animated: true)Should you require further customization, the UI SDK ships with a CatalogView that provides the basics of displaying two dimensional data.
CatalogQuery query = new CatalogQuery();
Traveler.fetchCatalog(query, new CatalogSearchCallback() {
@Override
public void onCatalogSearchSuccess(Catalog catalog) {
}
@Override
public void onCatalogSearchError(Error error) {
}
});The UI SDK ships with a fragment to handle the display of the fetched Catalog. To include this fragment add a <FrameLayout> to your Activity's layout XML:
<FrameLayout
android:id="@+id/catalogContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"/>And in your Activity's onCreate() the CatalogFragment
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
CatalogFragment catalogFragment = CatalogFragment.newInstance(catalog);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.catalogContainer, catalogFragment);
transaction.commit();
}Last updated
Was this helpful?