use underscore based event name

Seto committed Nov 24, 2025 at 16:09 UTC f6b708de00f3509d31f45b648f9048244a50c28f
6 files changed +59 -43
android/src/main/java/Generated.kt
+1 -1
@@ -25,7 +25,7 @@ class Generated {
25 const val REWARDED_IMPRESSION = "rewarded/impression"
26 const val REWARDED_LOAD = "rewarded/load"
27 const val REWARDED_LOAD_FAIL = "rewarded/load_fail"
28 - const val REWARDED_REWARD = "rewarded/reward"
28 + const val REWARDED_REWARD = "rewarded_reward"
29 const val REWARDED_SHOW = "rewarded/show"
30 const val REWARDED_SHOW_FAIL = "rewarded/show_fail"
31 }
examples/tauri-app/src-tauri/capabilities/android.json new
+7
@@ -0,0 +1,7 @@
1 +{
2 + "$schema": "../gen/schemas/android-schema.json",
3 + "identifier": "android-permission",
4 + "description": "enables the Android permissions",
5 + "windows": ["main"],
6 + "permissions": ["admob:default", "admob:allow-register-listener"]
7 +}
examples/tauri-app/src-tauri/capabilities/default.json
+5 -5
@@ -1,7 +1,7 @@
1 {
2 - "$schema": "../gen/schemas/mobile-schema.json",
3 - "identifier": "default",
4 - "description": "enables the default permissions",
5 - "windows": ["main"],
6 - "permissions": ["admob:default"]
2 + "$schema": "../gen/schemas/desktop-schema.json",
3 + "identifier": "default",
4 + "description": "enables the default permissions",
5 + "windows": ["main"],
6 + "permissions": []
7 }
examples/tauri-app/src-tauri/gen-override/android/app/src/main/AndroidManifest.xml
+1
@@ -1,6 +1,7 @@
1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android">
3 <uses-permission android:name="android.permission.INTERNET" />
4 + <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
5
6 <!-- AndroidTV support -->
7 <uses-feature android:name="android.software.leanback" android:required="false" />
examples/tauri-app/src/App.svelte
+44 -36
@@ -1,32 +1,43 @@
1 <script lang="ts">
2 -import { BannerAd, RewardedAd } from "tauri-plugin-admob-api";
3 -import Greet from "./lib/Greet.svelte";
2 + import { BannerAd, RewardedAd } from "tauri-plugin-admob-api";
3 + import Greet from "./lib/Greet.svelte";
4 + import { onMount } from "svelte";
5
5 -let response = "";
6 + let response = "";
7
7 -async function showBannerAd() {
8 - const banner = new BannerAd({
9 - adUnitId: "ca-app-pub-3940256099942544/9214589741",
10 - position: "top",
11 - });
12 - if (!(await banner.isLoaded())) {
13 - await banner.load();
14 - }
15 - await banner.show();
16 -}
17 -async function showRewardedAd() {
18 - try {
19 - const rewardedAd = new RewardedAd({
20 - adUnitId: "ca-app-pub-3940256099942544/5224354917",
21 - });
22 - if (!(await rewardedAd.isLoaded())) {
23 - await rewardedAd.load();
24 - }
25 - await rewardedAd.show();
26 - } catch(e) {
27 - console.log(e);
28 - }
29 -}
8 + const bannerAd = new BannerAd({
9 + adUnitId: "ca-app-pub-3940256099942544/9214589741",
10 + position: "top",
11 + });
12 +
13 + const rewardedAd = new RewardedAd({
14 + adUnitId: "ca-app-pub-3940256099942544/5224354917",
15 + });
16 +
17 + async function showBannerAd() {
18 + await bannerAd.show();
19 + }
20 + async function showRewardedAd() {
21 + try {
22 + await rewardedAd.show();
23 + const rewardPromise = await rewardedAd.onRewarded(async (reward) => {
24 + console.log("RewardedAd get reward callback:", reward);
25 + });
26 + console.log(rewardPromise.event);
27 + } catch (e) {
28 + console.log(e);
29 + }
30 + }
31 +
32 + async function loadAds() {
33 + await bannerAd.load();
34 + await rewardedAd.load();
35 + }
36 +
37 + onMount(() => {
38 + console.log("the component has mounted");
39 + loadAds();
40 + });
41 </script>
42
43 <main class="container">
@@ -34,33 +45,30 @@ async function showRewardedAd() {
45
46 <div class="row">
47 <a href="https://vitejs.dev" target="_blank">
37 - <img alt="Vite Logo" class="logo vite" src="/vite.svg"/>
48 + <img alt="Vite Logo" class="logo vite" src="/vite.svg" />
49 </a>
50 <a href="https://tauri.app" target="_blank">
40 - <img alt="Tauri Logo" class="logo tauri" src="/tauri.svg"/>
51 + <img alt="Tauri Logo" class="logo tauri" src="/tauri.svg" />
52 </a>
53 <a href="https://svelte.dev" target="_blank">
43 - <img alt="Svelte Logo" class="logo svelte" src="/svelte.svg"/>
54 + <img alt="Svelte Logo" class="logo svelte" src="/svelte.svg" />
55 </a>
56 </div>
57
47 - <p>
48 - Click on the Tauri, Vite, and Svelte logos to learn more.
49 - </p>
58 + <p>Click on the Tauri, Vite, and Svelte logos to learn more.</p>
59
60 <div class="row">
52 - <Greet/>
61 + <Greet />
62 </div>
63
64 <div class="row">
56 - <button on:click="{showBannerAd}">Show Banner Ad</button>
65 + <button on:click={showBannerAd}>Show Banner Ad</button>
66 <div>{@html response}</div>
67 </div>
68 <div class="row">
60 - <button on:click="{showRewardedAd}">Show Rewarded Ad</button>
69 + <button on:click={showRewardedAd}>Show Rewarded Ad</button>
70 <div>{@html response}</div>
71 </div>
63 -
72 </main>
73
74 <style>
guest-js/ads/rewarded.ts
+1 -1
@@ -21,7 +21,7 @@ export class RewardedAd extends MobileAd<RewardedAdOptions> {
21 ): Promise<PluginListener> {
22 return await addPluginListener(
23 'admob',
24 - 'rewarded/reward',
24 + 'rewarded_reward',
25 handler
26 );
27 }