NativeScript for Android App 中的 Kiosk 模式

Posted

技术标签:

【中文标题】NativeScript for Android App 中的 Kiosk 模式【英文标题】:Kiosk mode in NativeScript for Android App 【发布时间】:2019-03-31 13:51:31 【问题描述】:

从过去几天开始,我正在尝试使用 Angular for android App 在 NativeScript 中实现信息亭模式(锁定应用程序)。

我已直接尝试过,但无法处理 Android 中的所有按钮,例如 Home 和 Recent Apps 按钮。我能够处理返回和音量增大和减小按钮。

另一种方法是,我尝试使用 Android Native 创建自己的插件,但我无法这样做。

Android Native 中的 Kiosk 模式有两个选项。一种是屏幕固定(以编程方式),另一种是在 Android 中使用 COSU(这不是我的要求,因为我无法将应用程序设置为 1000 台设备的设备所有者)。

所以,任何人都可以分享他们在 Android 中使用 Screen Pinning 以及在 NativeScript 中创建插件和在 NativeScript 中的示例代码的知识。

提前致谢!

下面是我的 Android Native 实现 Screen Pinning 的 Java 代码

package org.nativescript.sdoddapaneni.kioskmodeplugin;

import android.app.ActivityManager;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class LoginActivity extends AppCompatActivity 

    private Button pinAppBtn;
    private Button unpinAppBtn;
    private ActivityManager am;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        pinAppBtn = (Button) findViewById(R.id.pin_app);
        unpinAppBtn = (Button) findViewById(R.id.unpin_app);

        am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

        pinAppBtn.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View v) 
                pin();
            
        );
        unpinAppBtn.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View v) 
                unpin();
            
        );

    

    public void unpin() 
        if (am.isInLockTaskMode()) 
            stopLockTask();
         else 
            Toast.makeText(this, "Application already unpinned !", Toast.LENGTH_SHORT).show();
        
    

    public void pin() 
        startLockTask();
    

【问题讨论】:

了解如何制作启动器应用来拦截主页按钮。这是第一步。这不是一项简单的任务,您需要进行大量研究。 我想通过单击按钮以编程方式锁定应用程序,而不需要对设备进行任何更改,例如生根或使应用程序具有启动器或设备所有者。我希望使用 NativeScript 来完成。我在互联网上找不到有用的示例或信息。 我怀疑 NativeScript 可以做到这一点,没有像上面那样实现它的插件。 只是一个可移植/可重用模块中的插件。即使在项目中,您也始终可以 100% 访问本机 API。 MobiLock 将是我的最后一个优先事项,因为他们有自己的定价和东西。我想做一些事情,比如在用户登录后启用信息亭模式并在注销后禁用。我认为屏幕固定是最好的方法。但是应该看看如何在 NativeScript 中作为插件来做到这一点 【参考方案1】:

Here 是您在 NativeScript 中扩展默认活动的方式。仅供参考,随着 v4.x NativeScript 仍然使用activity,盯着 5.x 他们引入了AppCompatActivity,预计将在几天后发布。

【讨论】:

以上是关于NativeScript for Android App 中的 Kiosk 模式的主要内容,如果未能解决你的问题,请参考以下文章

Nativescript-Vue:如何在 ListView 中正确使用 v-for

nativescript vue for 在标签上循环

Nativescript 6.0 Android 应用小部件不工作

android中状态栏下的nativescript操作栏

Nativescript - 在 Android 中隐藏状态栏

Nativescript 接受 Android SDK 许可