master
svelte 81 lines 2.17 KB
Raw
1 <script lang="ts">
2 import { BannerAd, RewardedAd, showPrivacyOptionsForm } from "tauri-plugin-admob-api";
3 import Greet from "./lib/Greet.svelte";
4 import { onMount } from "svelte";
5
6 const bannerAd = new BannerAd({
7 adUnitId: "ca-app-pub-3940256099942544/9214589741",
8 position: "top",
9 });
10
11 const rewardedAd = new RewardedAd({
12 adUnitId: "ca-app-pub-3940256099942544/5224354917",
13 });
14
15 async function showBannerAd() {
16 await bannerAd.show();
17 }
18 async function showRewardedAd() {
19 try {
20 await rewardedAd.show();
21 const rewardPromise = await rewardedAd.onRewarded(async (reward) => {
22 console.log("RewardedAd get reward callback:", JSON.stringify(reward));
23 });
24 console.log(rewardPromise.event);
25 } catch (e) {
26 console.log(e);
27 }
28 }
29
30 async function loadAds() {
31 await bannerAd.load();
32 await rewardedAd.load();
33 }
34
35 onMount(() => {
36 console.log("the component has mounted");
37 loadAds();
38 });
39 </script>
40
41 <main class="container">
42 <h1>Welcome to Tauri!</h1>
43
44 <div class="row">
45 <a href="https://vitejs.dev" target="_blank">
46 <img alt="Vite Logo" class="logo vite" src="/vite.svg" />
47 </a>
48 <a href="https://tauri.app" target="_blank">
49 <img alt="Tauri Logo" class="logo tauri" src="/tauri.svg" />
50 </a>
51 <a href="https://svelte.dev" target="_blank">
52 <img alt="Svelte Logo" class="logo svelte" src="/svelte.svg" />
53 </a>
54 </div>
55
56 <p>Click on the Tauri, Vite, and Svelte logos to learn more.</p>
57
58 <div class="row">
59 <Greet />
60 </div>
61
62 <div class="row">
63 <button on:click={showPrivacyOptionsForm}>Show Privacy Form</button>
64 </div>
65 <div class="row">
66 <button on:click={showBannerAd}>Show Banner Ad</button>
67 </div>
68 <div class="row">
69 <button on:click={showRewardedAd}>Show Rewarded Ad</button>
70 </div>
71 </main>
72
73 <style>
74 .logo.vite:hover {
75 filter: drop-shadow(0 0 2em #747bff);
76 }
77
78 .logo.svelte:hover {
79 filter: drop-shadow(0 0 2em #ff3e00);
80 }
81 </style>