更新记录

1.0.0(2026-01-17) 下载此版本

demo插件


平台兼容性

package com.example.unitoastplugin

import android.content.Context
import android.os.Handler
import android.os.Looper
import android.widget.Toast
import io.dcloud.feature.uniapp.bridge.UniJSCallback
import io.dcloud.feature.uniapp.annotation.UniJSMethod
import io.dcloud.feature.uniapp.common.UniModule

/**
 * uni-app Toast原生插件
 * 实现简单的Toast消息显示功能
 */
class UniToastPlugin : UniModule() {

    /**
     * 显示Toast消息(同步方法)
     * @param message 消息内容
     * @param duration 显示时长 0=短(Toast.LENGTH_SHORT), 1=长(Toast.LENGTH_LONG)
     * @return 返回结果信息
     */
    @UniJSMethod(uiThread = true)
    fun showToast(message: String?, duration: Int): String {
        val context = mUniSDKInstance.context ?: return "Error: Context is null"
        val msg = message ?: "Empty message"
        val toastDuration = if (duration == 1) Toast.LENGTH_LONG else Toast.LENGTH_SHORT

        try {
            Handler(Looper.getMainLooper()).post {
                Toast.makeText(context, msg, toastDuration).show()
            }
            return "Toast shown: $msg"
        } catch (e: Exception) {
            return "Error showing toast: ${e.message}"
        }
    }

    /**
     * 异步显示Toast消息(带回调)
     * @param message 消息内容
     * @param callback 回调函数
     */
    @UniJSMethod(uiThread = true)
    fun showToastAsync(message: String?, callback: UniJSCallback?) {
        val context = mUniSDKInstance.context ?: run {
            callback?.invoke(mapOf("success" to false, "message" to "Context is null"))
            return
        }

        val msg = message ?: "Empty message"

        try {
            Handler(Looper.getMainLooper()).post {
                Toast.makeText(context, msg, Toast.LENGTH_SHORT).show()
                callback?.invoke(mapOf("success" to true, "message" to "Toast shown successfully"))
            }
        } catch (e: Exception) {
            callback?.invoke(mapOf("success" to false, "message" to "Error: ${e.message}"))
        }
    }

    /**
     * 获取插件信息
     */
    @UniJSMethod(uiThread = false)
    fun getPluginInfo(): Map<String, Any> {
        return mapOf(
            "name" to "UniToastPlugin",
            "version" to "1.0.0",
            "author" to "Your Company",
            "description" to "uni-app Toast原生插件"
        )
    }
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

暂无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

暂无

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无

许可协议

MIT协议

暂无用户评论。