首页 > 其他分享 >Android 中的功能点

Android 中的功能点

时间:2023-10-17 21:05:15浏览次数:32  
标签:mWebSettings 功能 mWebView SYSTEM FLAG UI Android

Android 隐藏导航栏

 

    public void setStatusBarFullTransparent() {
        if (Build.VERSION.SDK_INT >= 21) {//21表示5.0
            Window window = getWindow();
//            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
//                    | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
//            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
//            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
//            window.setStatusBarColor(Color.TRANSPARENT);
            // 隐藏状态栏
            getWindow().getDecorView().setSystemUiVisibility(
                    View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                            | View.SYSTEM_UI_FLAG_FULLSCREEN
                            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
            );

//            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN );

        } else if (Build.VERSION.SDK_INT >= 19) {//19表示4.4
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            //虚拟键盘也透明
            //getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        }
    }

 

Android的webView唤起打印机

    public void printWeb() {
        Log.i(TAG, "printWeb");
        if (mWebView != null) {
            String name = mWebView.getTitle()+".pdf";
            PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE);
            PrintAttributes.Builder builder = new PrintAttributes.Builder();
            builder.setColorMode(PrintAttributes.COLOR_MODE_COLOR);
            printManager.print("Print", mWebView.createPrintDocumentAdapter(name), builder.build());
        }
    }

 

Android & H5交互

1、Android 设置

        mLayoutRoot.addView(mWebView);

        WebSettings mWebSettings = mWebView.getSettings();
        mWebSettings.setSupportZoom(true);
        mWebSettings.setLoadWithOverviewMode(true);
        mWebSettings.setUseWideViewPort(true);
        mWebSettings.setDefaultTextEncodingName("utf-8");

        mWebSettings.setAllowContentAccess(true);
        mWebSettings.setAllowFileAccess(true);
        mWebSettings.setAllowFileAccessFromFileURLs(false);
        mWebSettings.setAllowUniversalAccessFromFileURLs(false);

        mWebSettings.setLoadsImagesAutomatically(true);
        mWebSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);

        //新添加,解决个别机型不兼容的问题
        mWebSettings.setTextZoom(100);

        mWebView.getSettings().setUserAgentString(mWebView.getSettings().getUserAgentString()+"lianxin-commom-app");
        //自动播放音乐
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
            mWebSettings.setMediaPlaybackRequiresUserGesture(false);
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            mWebSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }

        //调用JS方法.安卓版本大于17,加上注解 @JavascriptInterface
        mWebSettings.setJavaScriptEnabled(true);

        saveData(mWebSettings);

        newWin(mWebSettings);

        mWebView.setWebChromeClient(webChromeClient);
        mWebView.setWebViewClient(webViewClient);


        addJsListener(this, "NativeBridge");
        mWebView.loadUrl(url);
@SuppressLint("JavascriptInterface")
    public void addJsListener(Object obj, String bridgeName) {
        mWebView.addJavascriptInterface(obj, bridgeName);
    }

 2、js调用Android的方法

//JS调用Android方法
    @JavascriptInterface
    public String jsCallAndroid(){
        Toast.makeText(this,"JS调用Android方法成功",Toast.LENGTH_LONG).show();
        return result;
    }


 

//JS调用Android方法-带参数
    @JavascriptInterface
    public String jsCallAndroid(int type){
        Toast.makeText(this,"JS调用Android方法成功,type----"+type,Toast.LENGTH_LONG).show();
        return result;
    }

 3、JS调用Android

// JS中调用Android方法

window.NativeBridge.postMessage(message);
window.NativeBridge.printWeb();

 4、Android调用js

 protected void pushDeviceDataToWeb(String data) {
        if (mWebView != null) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    mWebView.loadUrl("javascript:pushDeviceDataToWeb( '" + data + "')");
                    mWebView.loadUrl("javascript:pushDeviceDataToWebHome( '" + data + "')");
                }
            });
        }
    }

 

Android 横屏

 android:screenOrientation="landscape"

 

标签:mWebSettings,功能,mWebView,SYSTEM,FLAG,UI,Android
From: https://www.cnblogs.com/ljcgood66/p/17770629.html

相关文章

  • 在Android Studio上使用flutter Intl插件快速实现国际化和多国语言
    Flutter实现国际化和多语言支持在Flutter中实现国际化和多语言支持通常涉及以下步骤:添加依赖库:首先,你需要添加flutter_localizations依赖库到你的pubspec.yaml文件中。这个库包含了Flutter国际化所需的核心功能。dependencies:flutter:sdk:flutterflutter_localiza......
  • 请完善课上的口算题卡代码,实现重复题目的检测、题目数字范围、加减乘除算式的参数化等
    importjava.util.HashSet;importjava.util.Random;importjava.util.Set;publicclassMathQuizGenerator{  publicstaticvoidmain(String[]args){    intnumberOfQuestions=10;//设定生成题目的数量    intminNumber=1;//题目数字的最小值 ......
  • 关于4G无线网络车载高清云台摄像机的功能介绍及其应用场景
    4G无线车载摄像机是一种先进的视频监控设备,专为车辆设计。它通过利用4G网络进行数据传输和远程监控,为车辆提供了全方位的安全保障。这种摄像机通常由摄像头、图像处理单元和4G通信模块组成。首先,4G无线车载摄像机具备实时监控的功能。它能够通过摄像头实时捕捉车辆周围的画面,......
  • 3分钟了解Android中稳定性测试
    一、什么是MonkeyMonkey在英文里的含义是猴子,在测试行业的学名叫“猴子测试”,指的是没有测试经验的人甚至是根本不懂计算机的人(就像一只猴子),不需要知道程序的任何用户交互方面的知识,给他一个程序,他就会对他看到的任何界面进行操作,当然操作是无目的的、随便乱按乱点的,这种测试在产......
  • Bonree ONE 秋季产品发布会上新功能提前剧透!
    博睿数据将于2023年10月20日(周五)震撼发布全新一代一体化智能可观测平台BonreeONE,以轻盈、有序、精准为本次秋季发布的产品亮点,助力企业应对新技术带来的运维压力,更好地实现数字化转型。届时,我们将带您一同探索数智融合的新时代,敬请期待!现在,先来预览一些产品功能亮点吧~数据集成通......
  • 【0-1】从0.1开始学Android逆向-APK基本结构概要分析
    概要最近在进行Android的逆向,在这里整理知识点和分享Android逆向知识。如果文章中有任何勘误,诚挚的邀请师傅们批评改正!0.什么是逆向?逆向工程(ReverseEngineering)是一种分析和解剖已有产品、系统或软件的过程,以了解其内部工作原理、设计、功能或源代码。逆向工程可以应用于多个......
  • 为网站接入免费SSL证书let's encrypt 并实现自动续签功能
    以ubuntu系统为例:1.安装certbot:aptupdateaptupgradesudoaptinstallcertbotpython3-certbot-nginx2.验证Web服务器端口是否打开并允许通过防火墙sudoufwstatusverbose3.获取SSL证书sudocertbot--nginx-dyour_domain.com-dwww.your_domain.com4.检查C......
  • pc端放大缩小拖动选座功能
    <style>.main{display:flex;width:80%;justify-content:space-between;}.back_box{background:#fff;border:1pxsolid#eee;height:100%;position:fixed;overflow:hidden;}.drag_box{width:......
  • Android—组件化的搭建
    1.什么是组件化?1.1为什么要用组件化在项目的开发过程中,随着开发人员的增多及功能的增加,如果提前没有使用合理的开发架构,那么代码会越来臃肿,功能间代码耦合也会越来越严重,这时候为了保证项目代码的质量,我们就必须进行重构1.2组件化的介绍......
  • Android rescueParty 救援模式
    现象:设备刷机后无法启动,不停重启。 备注:userdebug版本无问题,user版本才有问题。 分析:1.user版本无法获取到logcat日志,但是从获取的串口日志如下:[   89.217156]|01-01 00:02:50.315 reboot: Restarting system with command 'rescueparty'可以看到重启原因是......