Ví dụ

Dưới đây, bạn sẽ tìm thấy các mẫu mã nguồn để thiết lập Yandex Games SDK theo cách đồng bộ và không đồng bộ.

Ví dụ cụ thể:

  1. Hàm lệnh gọi trở lại không được thiết lập cho lệnh gọi quảng cáo đầu tiên.
  2. Mọi hàm lệnh gọi trở lại có thể được chỉ định cho lệnh gọi thứ hai và mỗi lệnh gọi tiếp theo.
  3. Trình xử lý sự kiện 'nhấp chuột' được gán cho nút Hiển thị quảng cáo (quảng cáo được gọi trên mỗi lần nhấp vào nút).
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <title>Ví dụ về trang với SDK được định cấu hình đồng bộ</title>
    <script src="/sdk.js"></script>
    <script>
        YaGames.init().then(ysdk => {
            ysdk.adv.showFullscreenAdv();

            const buttonElem = document.querySelector('#button');

            let commonCounter = 0;
            buttonElem.addEventListener('click', () => {
                let counter = 0;

                function getCallback(callbackName) {
                    return () => {
                        counter += 1;
                        commonCounter += 1;

                        console.log(`showFullscreenAdv; callback ${callbackName}; ${counter} call`);
                    }
                }

                ysdk.adv.showFullscreenAdv({
                    callbacks: {
                        onClose: getCallback('onClose'),
                        onOpen: getCallback('onOpen'),
                        onError: getCallback('onError')
                     }
                });
            });
        });
    </script>
</head>
<body>
    <button id="button">Hiển thị quảng cáo</button>
</body>
</html>

Ví dụ cụ thể:

  1. Hàm lệnh gọi trở lại onClose được thiết lập cho lệnh gọi quảng cáo đầu tiên.

  2. Mọi hàm lệnh gọi trở lại có thể được chỉ định cho lệnh gọi thứ hai và mỗi lệnh gọi tiếp theo.

  3. Hàm lệnh gọi trở lại onClose bao gồm mã sẽ được chạy sau khi đóng đơn vị quảng cáo.

  4. Tất cả các lỗi xảy ra trong quá trình hoạt động SDK hoặc trong quá trình thực hiện các hàm lệnh gọi trở lại được truyền vào hàm onError.

  5. Trình xử lý sự kiện 'nhấp chuột' được gán cho nút Hiển thị quảng cáo (quảng cáo được gọi trên mỗi lần nhấp vào nút).

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <title>Ví dụ về trang có SDK được đặt cấu hình không đồng bộ</title>
    <script>
        let ysdk;

        function initSDK() {
            YaGames
                .init()
                .then(ysdk_ => {
                    ysdk = ysdk_;
                    ysdk.adv.showFullscreenAdv({
                        callbacks: {
                            onClose: wasShown => {
                                console.info('First close')
                            }
                        }
                    });
                })
        }

        document.addEventListener('DOMContentLoaded', () => {
            const buttonElem = document.querySelector('#button');

            let commonCounter = 0;
            buttonElem.addEventListener('click', () => {
                let counter = 0;

                function getCallback(callbackName) {
                    return () => {
                        counter += 1;
                        commonCounter += 1;

                        if (commonCounter % 3 === 0) {
                            throw new Error(`Lỗi kiểm tra ${callbackName}, mọi thứ đều ổn, không nên hủy bỏ việc thực thi mã khác`);
                        }

                        console.info(`showFullscreenAdv; callback ${callbackName}; ${counter} call`);
                    }
                }

                function makeSomethingImportant() {
                    console.info('\'console.info\' rất quan trọng');
                }

                if (ysdk) {
                    ysdk.adv.showFullscreenAdv({
                        callbacks: {
                            onClose: makeSomethingImportant,
                            onOpen: getCallback('onOpen'),
                            onError: function(error) {
                                console.error(error);
                             }
                        }
                    });
                } else {
                    makeSomethingImportant();
                }
            });
        });
    </script>
</head>
<body>
<!-- Yandex Games SDK -->
<script>
    (function(d) {
        var t = d.getElementsByTagName('script')[0];
        var s = d.createElement('script');
        s.src = '/sdk.js';
        s.async = true;
        t.parentNode.insertBefore(s, t);
        s.onload = initSDK;
    })(document);
</script>
<button id="button">Hiển thị quảng cáo</button>
</body>
</html>
  • onClose: Được gọi khi quảng cáo đóng lại, khi có lỗi hoặc khi quảng cáo không mở được do lệnh gọi quá thường xuyên. Hàm này được sử dụng với đối số wasShown (loại dữ liệu boolean), là giá trị cho biết quảng cáo có được hiển thị hay không.
  • onOpen: Được gọi khi quảng cáo được mở thành công.
  • onError: Được gọi khi xảy ra lỗi. Đối tượng lỗi được truyền vào hàm lệnh gọi trở lại.

onClose: Được gọi khi quảng cáo đóng lại, khi có lỗi hoặc khi quảng cáo không mở được do lệnh gọi quá thường xuyên. Hàm này được sử dụng với đối số wasShown (loại dữ liệu boolean), cho biết quảng cáo có được hiển thị hay không.

onError: Được gọi khi xảy ra lỗi. Đối tượng lỗi được truyền vào hàm lệnh gọi trở lại.

onOpen: Được gọi khi quảng cáo được mở thành công.