全部产品
Search
文档中心

Mobile Platform as a Service:Konfigurasi booth preset

更新时间:Jul 02, 2025

Operasi booth preset pada halaman HTML5 hanya melibatkan pengambilan informasi booth. Metode pengambilannya mencakup: Ambil Satu per Satu dan Ambil dalam Jumlah Besar.

Selain mengambil informasi booth, Anda juga dapat mencegat informasi booth dan iklan dengan memanggil operasi API.

Tentang tugas ini

Jika Anda seorang pemula, kami menyarankan agar Anda mengonfigurasi booth iklan halaman iOS secara dinamis di konsol mPaaS (sisi server). Untuk detailnya, lihat Buat Sebuah Booth.

Ambil satu per satu

Panggil getCdpSpaceInfo pada halaman HTML5 untuk mendapatkan informasi booth:

AlipayJSBridge.call('getCdpSpaceInfo', {
  spaceCode: 'space-code1',
  extInfo: {
    tradeNo: '123'
  },
  immediately: false,
  multiCallback: true
}, function (result) {
  console.log(result);
});

di mana:

  • spaceCode: Kode booth yang diajukan ke backend.

  • extInfo: Informasi ekstensi dalam format key/value.

  • immediately: Nilai boolean. Menunjukkan apakah data cache tidak diperlukan dan data langsung diambil dari server. Secara default, data dibaca dari cache.

  • multiCallback: Nilai boolean. Menunjukkan apakah beberapa callback diperlukan ketika API dipanggil sekali.

Catatan

Jika multiCallback disetel ke NO atau tidak disetel, callback hanya dilakukan sekali. Jika ada mekanisme cache, iklan tidak akan ditampilkan sesuai jadwal saat halaman dibuka pertama kali, tetapi akan ditampilkan pada waktu berikutnya saat halaman dibuka. Jika parameter ini disetel ke YES, Anda perlu melakukan MCDP callback dua kali. Callback pertama adalah data cache (jika ada cache), dan callback kedua adalah hasil yang dikembalikan oleh RPC.

Ambil dalam jumlah besar

Panggil getCdpSpaceInfos pada halaman HTML5 untuk mendapatkan informasi booth.

AlipayJSBridge.call('getCdpSpaceInfos', {
  spaceCodes: ['space-code1', 'space-code2'],
  extInfo: {
    tradeNo: '123'
  },
  immediately: false,
  multiCallback: true
}, function (result) {
  console.log(result);
});
/**
 * Layanan iklan MCDP API
 *
 */
public abstract class CdpAdvertisementService extends ExternalService {

    /**
     * Inisialisasi semua informasi iklan.
     *
     * @param extInfo: informasi ekstensi.
     * @param callBack: callback.
     */
    public abstract void initialized(Map<String, String> extInfo, IAdGetSpaceInfoCallBack callBack);

    /**
     * Query booth berdasarkan ID booth. Panggil kembali onSuccess(SpaceInfo spaceInfo) secara asinkron untuk mengembalikan hasil query.
     * Jika tidak ada cache lokal, hasil query RPC dipanggil kembali.
     * Jika ada cache lokal dan sebelum waktu pembaruan, hasil query lokal dipanggil kembali.
     * Jika ada cache lokal dan sebelum waktu pembaruan, hasil query lokal dipanggil kembali, lalu hasil pembaruan dipanggil kembali setelah RPC.
     * API onFail() hanya dipanggil kembali jika RPC gagal.
     *
     * @param spaceCode: ID booth, yang perlu diajukan ke platform distribusi iklan.
     * @param callback: API callback.
     */
    public abstract void getSpaceInfoByCode(String spaceCode, IAdGetSingleSpaceInfoCallBack callback);

    /**
     * Query booth berdasarkan ID booth. Panggil kembali onSuccess(SpaceInfo spaceInfo) secara asinkron untuk mengembalikan hasil query.
     * Jika tidak ada cache lokal, hasil query RPC dipanggil kembali.
     * Jika ada cache lokal dan sebelum waktu pembaruan, hasil query lokal dipanggil kembali.
     * Jika ada cache lokal dan sebelum waktu pembaruan, hasil query lokal dipanggil kembali, lalu hasil pembaruan dipanggil kembali setelah RPC.
     * API onFail() hanya dipanggil kembali jika RPC gagal.
     *
     * @param spaceCode: ID booth, yang perlu diajukan ke platform distribusi iklan.
     * @param extInfo: parameter ekstensi.
     * @param immediately: hanya kembalikan hasil RPC.
     * @param callback: API callback.
     */
    public abstract void getSpaceInfoByCode(String spaceCode, Map<String, String> extInfo, boolean immediately, final IAdGetSingleSpaceInfoCallBack callback);

    /**
     * Query booth dalam jumlah besar berdasarkan daftar ID booth. Panggil kembali onSuccess(List<SpaceInfo> adSpaceInfo) secara asinkron untuk mengembalikan hasil query.
     * Jika tidak ada cache lokal, hasil query RPC dipanggil kembali.
     * Jika ada cache lokal dan sebelum waktu pembaruan, hasil query lokal dipanggil kembali.
     * Jika ada cache lokal dan sebelum waktu pembaruan, hasil query lokal dipanggil kembali, lalu hasil pembaruan dipanggil kembali setelah RPC.
     * Callback onFail(ListString adSpaceCodes) API hanya jika RPC gagal
     *
     * @param spaceCodeList: daftar ID booth, yang perlu diajukan ke platform distribusi iklan.
     * @param extInfo: parameter ekstensi.
     * @param immediately: hanya kembalikan hasil RPC.
     * @param callback: API callback.
     */
    public abstract void batchGetSpaceInfoByCode(List<String> spaceCodeList, Map<String, String> extInfo, boolean immediately, final IAdGetSpaceInfoCallBack callback);

    /**
     * TODO: API H5 cadangan.
     *Query dan tampilkan iklan. Ini hanya dipanggil oleh AdH5Plugin.
     *
     * @param activity: halaman saat ini.
     * @param parentView: kontrol induk.
     * @param url: URL.
     * @param h5Param: parameter.
     */
    public abstract void checkAndShowAdInH5(final Activity activity, ViewGroup parentView, String url, String h5Param);

    /**
     * Hapus tampilan iklan dari spaceCode tertentu.
     *
     * @param activity: halaman dari mana pengumuman akan dihapus.
     * @param spaceCode: ID iklan
     */
    public abstract void removeAdvertisement(Activity activity, String spaceCode);

    /**
     * Dapatkan executor aksi. Jika parameter ini tidak disetel, null dikembalikan.
     *
     * @return: executor aksi.
     */
    public abstract ActionExecutor getActionExecutor();

    /**
     * Set executor aksi.
     *
     * @param executor: executor aksi.
     */
    public abstract void setActionExecutor(ActionExecutor executor);


    /**
     * Set ID pengguna.
     *
     * @param userId: ID pengguna.
     */
    public abstract void setUserId(String userId);

    /**
     * Dapatkan ID pengguna.
     *
     * @return: ID pengguna.
     */
    public abstract String getUserId();

    /**
     * Dapatkan kelas callback untuk booth iklan.
     */
    public interface IAdGetSpaceInfoCallBack {
        /**
         * Berhasil mendapatkan informasi booth.
         *
         * @param adSpaceInfo: daftar booth.
         */
        void onSuccess(List<SpaceInfo> adSpaceInfo);

        /**
         * Gagal mendapatkan informasi booth.
         *
         * @param adSpaceCodes: daftar kode permintaan booth.
         */
        void onFail(List<String> adSpaceCodes);
    }

    /**
     * Mendapatkan kelas callback untuk booth tunggal.
     */
    public interface IAdGetSingleSpaceInfoCallBack {
        /**
         * Berhasil mendapatkan informasi booth.
         *
         * @param spaceInfo: informasi booth.
         */
        void onSuccess(SpaceInfo spaceInfo);

        /**
         * Gagal
         */
        void onFail();
    }
}

ActionExecutor

ActionExecutor (executor aksi) mengimplementasikan intersepsi informasi booth dan iklan. Klien tidak menampilkan booth dan konten iklan yang sesuai setelah intersepsi, tetapi menampilkan booth serta konten iklan tanpa intersepsi.

/**
 * Executor aksi
 *
 */
public interface ActionExecutor {

    /**
     * Apakah akan mencegat aksi
     * @param spaceInfo: informasi booth.
     * @param spaceObjectInfo: informasi iklan.
     * @param url: url aksi.
     * @return: Nilai true menunjukkan mencegat aksi sedangkan false menunjukkan sebaliknya.
     */
    boolean interceptAction(final SpaceInfo spaceInfo, final SpaceObjectInfo spaceObjectInfo, final String url);

    /**
     * Jalankan aksi.
     *
     * @param spaceInfo: informasi booth.
     * @param spaceObjectInfo: informasi iklan.
     * @param url: url aksi.
     * @return: Nilai 1 menunjukkan sukses dan nilai lainnya menunjukkan pengecualian.
     */
    int executeAction(final SpaceInfo spaceInfo, final SpaceObjectInfo spaceObjectInfo, final String url);
}