使用android studio将网站打包成apk(可以直接使用替换为自己的网站连接即可)

这篇具有很好参考价值的文章主要介绍了使用android studio将网站打包成apk(可以直接使用替换为自己的网站连接即可)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

公司有这个需求生成一个webapp应用。前面一直在使用web与Android混合开发,越是后面你就发现越有意思。hbuildX官网不怎么维护,虽然一直说这是潮流,uni-app开发也挺火的,但是安卓开发特别是适配不同的手机型号,真的是头大。

这是一个适用于Android Studio的模板项目,可让你在几分钟内创建一个android webview应用程序。你可以使用它为您的网站创建一个简单的应用程序,或作为基于 HTML5 的 android 应用程序的起点。

就拿百度的连接来说吧。这个是mainActivity的一个代码。以代码注释的一种方式就行了。

public class MainActivity extends Activity {

    //private WebView mWebView;
    private static final String TAG = MainActivity.class.getSimpleName();
    WebView webview;

    String url = "https://www.baidu.com/";  //云端,把这个连接就行一个替换成你得就行了。

    @Override
    @SuppressLint({"SetJavaScriptEnabled", "MissingInflatedId"})
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        webview = (WebView) findViewById(R.id.activity_main_webview);
        webview.setWebViewClient(new WebViewClient(){
            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error){
                Log.e("tag"," SslError="+error);
                //证书信任
                handler.proceed();
            }
        });

        setUpWebViewDefaults(webview);


        WebSettings settings = webview.getSettings();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }
        settings.setCacheMode(WebSettings.LOAD_NO_CACHE);
//支持js
        settings.setJavaScriptEnabled(true);

        settings.setUserAgentString("Mozilla/5.0 (android; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.109 Safari/537.36");
        //settings.setUserAgentString("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36");
//自适应屏幕
        settings.setUseWideViewPort(true);
        settings.setLoadWithOverviewMode(true);
//自动缩放
        settings.setBuiltInZoomControls(true);
        settings.setSupportZoom(true);
        settings.setDomStorageEnabled(true);
        settings.setBlockNetworkImage(false);
        settings.setUseWideViewPort(true);
        settings.setLoadWithOverviewMode(true);
//支持获取手势焦点
        webview.requestFocusFromTouch();
        // REMOTE RESOURCE
        //mWebView.loadUrl("https://github.com/");
        //mWebView.loadUrl(url);

        webview.setWebChromeClient(new WebChromeClient(){

            @Override
            public boolean onConsoleMessage(ConsoleMessage cm) {  //在Logcat中显示浏览器的控制台输出
                Log.d("MyApplication", cm.message() + " -- From line "
                        + cm.lineNumber() + " of "
                        + cm.sourceId() );
                return true;
            }

           // @TargetApi(Build.VERSION_CODES.LOLLIPOP)
            @Override
            //解決打不开webrtc摄像头的问题;有一点十分重要需要手动在安卓权限中允许摄像头权限
            public void onPermissionRequest(final PermissionRequest request) {
                request.grant(request.getResources());
            }
        });
        webview.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url); // 根据传入的参数再去加载新的网页
                return true; // 表示当前WebView可以处理打开新网页的请求,不用借助系统浏览器
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                view.loadUrl("javascript:function ganen(){ document.getElementsByTagName('meta')['viewport'].content='width=1000px,initial-scale=0.5,minimum-scale=0.2;'}");
                view.loadUrl("javascript:ganen();");
            }

        });


        webview.setWebViewClient(new WebViewClient() {  //解決https 不安全的显示问题
            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
//                super.onReceivedSslError(view, handler, error);
                //handler.cancel();// super中默认的处理方式,WebView变成空白页
                if (handler != null) {
                    handler.proceed();//忽略证书
                }
            }
        });

        webview.getSettings().setMediaPlaybackRequiresUserGesture(false); //让摄像头自动播放
        webview.loadUrl(url);

        webview.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onPermissionRequest(final PermissionRequest request) {
                Log.d(TAG, "onPermissionRequest");
                MainActivity.this.runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        if(request.getOrigin().toString().equals(url)) {
                            request.grant(request.getResources());
                        } else {
                            request.deny();
                        }
                    }
                });
            }

        });

        //mWebView.loadUrl("https://www.cncwww.cn:9944/call.html");
        // LOCAL RESOURCE
        // mWebView.loadUrl("file:///android_asset/index.html");
    }

    @Override
    public void onBackPressed() {
        if(webview.canGoBack()) {
            webview.goBack();
        } else {
            super.onBackPressed();
        }
    }

    /**
     * Convenience method to set some generic defaults for a
     * given WebView
     *
     * @param webView
     */
    private void setUpWebViewDefaults(WebView webView) {
        WebSettings settings = webView.getSettings();

        // Enable Javascript
        settings.setJavaScriptEnabled(true);

        // Use WideViewport and Zoom out if there is no viewport defined
        settings.setUseWideViewPort(true);
        settings.setLoadWithOverviewMode(true);

        // Enable pinch to zoom without the zoom buttons
        settings.setBuiltInZoomControls(true);

        // Allow use of Local Storage
        settings.setDomStorageEnabled(true);

        if(Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB) {
            // Hide the zoom controls for HONEYCOMB+
            settings.setDisplayZoomControls(false);
        }

        // Enable remote debugging via chrome://inspect
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            WebView.setWebContentsDebuggingEnabled(true);
        }

        webView.setWebViewClient(new WebViewClient());

        // AppRTC requires third party cookies to work
        CookieManager cookieManager = CookieManager.getInstance();
        cookieManager.setAcceptThirdPartyCookies(webview, true);
    }
}

然后按照步骤进行一个打包,就行了。
网站打包成apk,android studio,android,ide
网站打包成apk,android studio,android,ide
注意:这里需要keystore文件才能打包,我是用jdK1.8生成的。然后已经放项目里面了。
网站打包成apk,android studio,android,ide
网站打包成apk,android studio,android,ide
网站打包成apk,android studio,android,ide

关于:test.keystore

key store password: test123
key alias: test
key password: test123

把这个地址连接换成你的即可。
网站打包成apk,android studio,android,ide
缺点:
还没有做一个开屏动画,因为我没有一个素材,打开的,白屏会有点久。后面找时间研究一下。
github地址:https://github.com/wskang12138/webapp文章来源地址https://www.toymoban.com/news/detail-736030.html

到了这里,关于使用android studio将网站打包成apk(可以直接使用替换为自己的网站连接即可)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android studio 打包release版本 apk 换方式了?

     有一段时间没有搞Android,在基本操作打release包的时候竟然一直打包不成功,一直报 Generate Signed APK: APK(s) generated successfully for module \\\'CorrectionPlatform.app\\\' with 0 build variants: 但主要还不提示打包失败; 在经历一段煎熬各种搜索各种找,终于找到了另一种可以生成release包的方法。

    2023年04月09日
    浏览(43)
  • 最新解决Android Studio打包没有Generate Signed Bundle/APK选项

    在开发React native安装Android Studio时,出现了一些问题,没有Generate Signed Bundle/APK打包选项. 在网上查很多都是点击File,选择Sync Project with Gradle Files,我这边设置无效。 最终通过一系列配置才显示出来。 1、Node.js环境 检查是否有安装nodejs 2、JDK JDK(Java Development Kit)是 Java 开发套

    2024年02月08日
    浏览(97)
  • flutter开发实战-打包应用apk签名及Android studio没有generate signed bundle/apk问题修改

    flutter开发实战-打包应用apk签名及Android studio没有generate signed bundle/apk问题修改 最近使用flutter开发项目,需要将打包应用时候apk进行签名,我这边开发使用的是Android studio,发现在Android studio的build没有generate signed bundle/apk。这里记录一下问题修改,以及生产签名文件及gradle配置

    2024年02月08日
    浏览(58)
  • 用 Android Studio 打包 uni-app 的安卓apk;手把手教程、巨详细避坑

    Uni-app 离线打包 apk 1. Android Studio 下载 Android Studio官网 2. HBuilderX下载 HBuilderX下载 3. App离线SDK下载 Android 离线SDK - 正式版 下载后解压文件,将 HBuilder-Integrate-AS 重命名 build-template 并拷贝到一个专门打包用的文件夹下作为打包模板 该文件夹中有一个 simpleDemo 文件夹 即 build-temp

    2024年02月04日
    浏览(65)
  • Unity打包APK错误:‘android.enableR8‘选项已被弃用,不应再使用

    Unity打包APK错误:\\\'android.enableR8’选项已被弃用,不应再使用 在Unity游戏开发中,我们经常需要将游戏打包成APK文件以在Android设备上进行测试或发布。然而,有时候在打包APK的过程中,可能会遇到一些错误。其中一个常见的错误是 “The option ‘android.enableR8’ is deprecated and sh

    2024年02月08日
    浏览(68)
  • Android 源码修改,使第三方应用可以直接使用su命令

        在android原生系统中,只有root权限和shell权限下才可以使用su命令,虽然在userdebug模式下编译的系统镜像有自带的su文件,但是第三方应用却无法使用。于是在这种场景下,有两种方式可以实现第三方应用使用su命令。     1.修改原来的su相关的源码(所有的应用都可以使用

    2024年02月09日
    浏览(72)
  • uniapp离线打包(使用Android studio打包)

    安装HbuilderX,记住版本号 下载对应HbuilderX版本的Android离线SDK,如我使用3.6.18版本打包,则对应应下载3.6.18版本的SDK(官网不提供旧版本的SDK,有些需要自己找)官网下载地址:https://nativesupport.dcloud.net.cn/AppDocs/download/android.html 安装Android Studio 1.使用HbuilderX生成本地打包App字段

    2024年03月12日
    浏览(52)
  • Android APK 签名打包原理分析(一)【APK结构分析】

    最近在看AOSP Apk安装的相关源码时,发现自己对这块知识一直停留到用的层面,并未有深入的了解,例如打包的具体过程、签名的具体过程、渠道打包,最重要的,自己这几年在做系统方面的应用时,也解决过很多apk 安装的问题,修改过部分的系统源码,可是没有把这块知识

    2024年02月02日
    浏览(52)
  • uniapp使用Android Studio离线打包

    Android Studio: 下载地址 APP离线SDK下载: 下载地址; 目前我使用得是“Android-SDK@3.8.7.81902_20230704”;需要与hbuider版本配套使用。 Appkey: 参考我 以上三步准备好后,进行接下来的不住: 导入APP离线SDK到 Android Studio 配置Appkey 打开Androidmanifest.xml, 导航到Application节点,创建meta-d

    2024年02月01日
    浏览(50)
  • Android中的APK打包与安全

    apk文件结构 classes.dex:Dex,即Android Dalvik执行文件 AndroidManifest.xml:工程中AndroidManifest.xml编译后得到的二进制xml文件 META-INF:主要保存各个资源文件的SHA1 hash值,用于校验资源文件是否被篡改,防止二次打包时资源文件被替换,该目录下主要包括下面三个文件: MANIFEST.MF:保

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包