uni-app 求购一个原生插件 全屏浮窗的

发布于 1周前 作者 zlyuanteng 来自 Uni-App

uni-app 求购一个原生插件 全屏浮窗的

支持uni的 求购一个原生插件,全屏浮窗的  浮窗内容能任意切换的
4 回复

无法实现 浮窗内容只能是原生的东西,


公司承接项目外包开发、双端(Android,iOS)原生插件开发。
为什么选择我们: 1、1000 项目开发积累,数百种商业模式开发经验,更懂您的需求,沟通无障碍。 2、一年免费技术保障,系统故障或被攻击,2小时快速响应提供解决方案落地。 3、软件开发源码定制工厂,去中间商降低成本,提高软件开发需求沟通效率。 4、纯原生开发,拒绝模板和封装系统,随时更新迭代,增加功能,无需重做系统。 5、APP定制包办软件著作权申请,30天内保证拿到软著证书,知识产权受保护。 6、中软云科技导入严谨的项目管理系统,确保项目准时交付,快速抢占市场商机。 7、软件开发费、维护费、第三方各种费用公开透明,不花冤枉钱,不玩套路。
已有大量双端插件、App、小程序、公众号、PC、移动端、游戏等案例。
行业开发经验:银行、医疗、直播、电商、教育、旅游、餐饮、分销、微商、物联网、零售等
商务QQ:1559653449 商务微信:fan-rising
7x24小时在线,欢迎咨询了解

应用全局浮窗,可自定义浮窗内容:https://ext.dcloud.net.cn/plugin?id=8972

针对您提出的关于uni-app全屏浮窗原生插件的需求,我可以提供一个基本的实现思路和示例代码,帮助您理解如何开发或集成一个全屏浮窗的原生插件。请注意,这里展示的是基于Android平台的实现示例,iOS平台可能会有所不同,但原理相似。

实现思路

  1. 创建原生插件:首先,需要在Android Studio中创建一个原生插件项目,定义浮窗的显示逻辑。
  2. 与uni-app通信:通过JSBridge实现uni-app与原生插件的通信,控制浮窗的显示与隐藏。
  3. 权限处理:由于浮窗功能需要特定的系统权限,需要在插件中处理权限请求。

示例代码

Android原生插件代码

1. 创建插件类

package com.example.overlaywindow;

import android.app.Activity;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.os.IBinder;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;

public class OverlayWindowModule extends UniModule {
    private WindowManager windowManager;
    private View overlayView;

    @Override
    public void onCreate(Bundle savedInstanceState, Context context, UniJSCallback callback) {
        windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        overlayView = LayoutInflater.from(context).inflate(R.layout.overlay_window, null);
        // 设置浮窗参数
        WindowManager.LayoutParams params = new WindowManager.LayoutParams(
                WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.MATCH_PARENT,
                WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                PixelFormat.TRANSLUCENT);
        params.gravity = Gravity.TOP | Gravity.LEFT;
        windowManager.addView(overlayView, params);
    }

    // 提供关闭浮窗的方法
    public void closeOverlay() {
        if (overlayView != null) windowManager.removeView(overlayView);
    }
}

2. 配置插件

AndroidManifest.xml中声明服务(如果需要后台运行),并在uni-appmanifest.json中配置插件。

3. uni-app调用插件

// 在uni-app中调用原生插件
const overlayWindow = uni.requireNativePlugin('OverlayWindowModule');
overlayWindow.onCreate({}, (res) => {
    console.log('浮窗创建成功');
});
// 关闭浮窗
overlayWindow.closeOverlay({}, (res) => {
    console.log('浮窗已关闭');
});

注意事项

  • 确保您的应用具有SYSTEM_ALERT_WINDOW权限,这通常需要用户手动授予。
  • 浮窗的显示类型(TYPE_APPLICATION_OVERLAY)在不同Android版本中可能有所不同,需根据目标版本调整。
  • 由于涉及系统级权限和UI,务必在真实设备上测试。

以上代码提供了一个基本的框架,您可以根据实际需求进一步定制浮窗的UI和功能。

回到顶部