android studio 将HTML5封装成APK && 设置WebView支持js的Alert,Confirm,Prompt函数的弹出提示框.

本文介绍如何使用Android Studio将HTML5网页封装成APK应用,并详细展示了配置过程,包括WebView的设置、加载URL及处理JavaScript交互等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将HTML5封装成APK有好几种方法,这里紧记录下我用andorid studio封装的方法

第一步:打开AS新建一个项目;

第二步:配置MainActivity

// setContentView(R.layout.activity_main);

private static final String INJECTION_TOKEN = "**injection**";
//实例化WebView对象
        webview = new WebView(this);
//设置WebView属性,能够执行JavaScript脚本
      //  webview.getSettings().setJavaScriptEnabled(true);

        WebSettings mWebSetting;

        mWebSetting = webview.getSettings();
        mWebSetting.setJavaScriptEnabled(true);//支持javascript
        //======================保证页面的完整显示在手机屏幕上=======================
        mWebSetting.setUseWideViewPort(true);// 设置可以支持缩放
        mWebSetting.setLoadWithOverviewMode(true);

        mWebSetting.setSupportZoom(true);
        mWebSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);//自适应屏幕
        mWebSetting.setJavaScriptEnabled(true);

        try {
//设置打开的页面地址
            webview.loadUrl("http://88.888.cn/");//打开网址的首页
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
        setContentView(webview);

        webview.setWebViewClient(new WebViewClient(){
            /*@Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                 //返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
                 view.loadUrl(url);
                 return true;
            }*/
            @Override
            public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
                WebResourceResponse response = super.shouldInterceptRequest(view, url);
                if(url != null && url.contains(INJECTION_TOKEN)) {
                    String assetPath = url.substring(url.indexOf(INJECTION_TOKEN) + INJECTION_TOKEN.length(), url.length());
                    try {
                        response = new WebResourceResponse(
                                "application/javascript",
                                "UTF8",getAssets().open(assetPath)
                        );
                    } catch (IOException e) {
                        e.printStackTrace(); // Failed to load asset file
                    }
                }
                return response;
            }


        });

    }

第三步:设置androidmanifest.xml

加入上网权限
<uses-permission android:name="android.permission.INTERNET"/>

最后,运行就可以了哈


设置WebView支持js的Alert,Confirm,Prompt函数的弹出提示框.
  1. //设置响应js 的Alert()函数  
  2.         webView.setWebChromeClient(new WebChromeClient() {  
  3.             @Override  
  4.             public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {  
  5.                 AlertDialog.Builder b = new AlertDialog.Builder(TestAlertActivity.this);                  b.setTitle("Alert"); 
  6. b.setTitle("Alert")

    //若不用标题,直接注释上面一句程序即可//
    //b.setTitle("Alert")

  7.                 b.setMessage(message);  
  8.                 b.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {  
  9.                     @Override  
  10.                     public void onClick(DialogInterface dialog, int which) {  
  11.                         result.confirm();  
  12.                     }  
  13.                 });  
  14.                 b.setCancelable(false);  
  15.                 b.create().show();  
  16.                 return true;  
  17.             }  
  18.             //设置响应js 的Confirm()函数  
  19.             @Override  
  20.             public boolean onJsConfirm(WebView view, String url, String message, final JsResult result) {  
  21.                 AlertDialog.Builder b = new AlertDialog.Builder(TestAlertActivity.this);  
  22.                 b.setTitle("Confirm");  
  23.                 b.setMessage(message);  
  24.                 b.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {  
  25.                     @Override  
  26.                     public void onClick(DialogInterface dialog, int which) {  
  27.                         result.confirm();  
  28.                     }  
  29.                 });  
  30.                 b.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {  
  31.                     @Override  
  32.                     public void onClick(DialogInterface dialog, int which) {  
  33.                         result.cancel();  
  34.                     }  
  35.                 });  
  36.                 b.create().show();  
  37.                 return true;  
  38.             }  
  39.             //设置响应js 的Prompt()函数  
  40.             @Override  
  41.             public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, final JsPromptResult result) {  
  42.                 final View v = View.inflate(TestAlertActivity.this, R.layout.prompt_dialog, null);  
  43.                 ((TextView) v.findViewById(R.id.prompt_message_text)).setText(message);  
  44.                 ((EditText) v.findViewById(R.id.prompt_input_field)).setText(defaultValue);  
  45.                 AlertDialog.Builder b = new AlertDialog.Builder(TestAlertActivity.this);  
  46.                 b.setTitle("Prompt");  
  47.                 b.setView(v);  
  48.                 b.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {  
  49.                     @Override  
  50.                     public void onClick(DialogInterface dialog, int which) {  
  51.                         String value = ((EditText) v.findViewById(R.id.prompt_input_field)).getText().toString();  
  52.                         result.confirm(value);  
  53.                     }  
  54.                 });  
  55.                 b.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {  
  56.                     @Override  
  57.                     public void onClick(DialogInterface dialog, int which) {  
  58.                         result.cancel();  
  59.                     }  
  60.                 });  
  61.                 b.create().show();  
  62.                 return true;  
  63.             }  
  64.         }); 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值