找回密码
 立即注册

QQ登录

只需一步,快速开始

Lenka.Guo 讲师达人认证 悬赏达人认证
超级版主   /  发表于:2020-10-30 15:43  /   查看:3434  /  回复:0
现在移动端也是主要办公的手段之一,因此很多企业都期望在移动端,桌面端,服务端,都保持一致性,ActiveReportsJS是一款前端的Web 开发工具,助力开发前后端分离应用。所以如果要在手机端开发混合应用,也可以将ActiveReportsJS 集成进去。

本篇教程,主要来分享如何在Android app 开发中调用包含  ActiveReportJS 的html页面。

附件:
实现思路:
1. 创建 Android App 使用WebView控件来调用HTML 代码, WebView是一个基于webkit引擎、展现web页面的控件。
2. 在Android项目下创建asset文件将html页面及需要的js文件拷贝到当前目录。
3. 设置 Android权限,并设置可执行js代码


具体实现:
1. 下载Androird Studio ,新建空白的Android应用


2. 添加 MainActivity 并添加 WebView 控件
  1.   <WebView
  2.         android:id="@+id/webView1"
  3.         android:layout_width="match_parent"
  4.         android:layout_height="match_parent" />
复制代码





3. 添加 Asset文件夹,并将js及html页面放到该路径下,注意asset是归属于Main还是Debug还是release的,影响后面路径写法




4. 修改AndroidManifest.xml 文件,增加权限
  1.     <uses-permission android:name="android.permission.INTERNET" />
  2.     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
复制代码




5. MainActivity 调用WebView.loadURL(),并调用JavaScript对应的方法
注意路径写法:mWebview.loadUrl("file:///android_asset/activejs/index.html");

  1.       mWebview = (WebView) findViewById(R.id.webView1);
  2.         mWebSettings = mWebview.getSettings();
  3.         mWebSettings.setJavaScriptEnabled(true);
  4.         mWebSettings.setJavaScriptCanOpenWindowsAutomatically(true);
  5.         mWebSettings.setAllowContentAccess(true);
  6.         mWebSettings.setAppCacheEnabled(true);
  7.         mWebSettings.setDomStorageEnabled(true);
  8.         mWebSettings.setUseWideViewPort(true);
  9.         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
  10.             mWebSettings.setAllowFileAccessFromFileURLs(true);
  11.             mWebSettings.setAllowUniversalAccessFromFileURLs(true);
  12.         }



  13.          mWebview.loadUrl("file:///android_asset/activejs/index.html");
  14.         mWebview.post(new Runnable() {
  15.             @Override
  16.             public void run() {  // 注意调用的JS方法名要对应上
  17.                 // 调用javascript的callJS()方法
  18.                 mWebview.evaluateJavascript("javascript:load()", new ValueCallback<String>(){

  19.                     @Override
  20.                     public void onReceiveValue(String value) {

  21.                     }
  22.                 });

  23.             }
  24.         });

  25.        mWebview.setWebChromeClient(new WebChromeClient() {
  26.             @Override
  27.             public boolean onJsAlert(WebView view, String url, String message, final JsResult result) {
  28.                 AlertDialog.Builder b = new AlertDialog.Builder(MainActivity.this);
  29.                 b.setTitle("Alert");
  30.                 b.setMessage(message);
  31.                 b.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
  32.                     @Override
  33.                     public void onClick(DialogInterface dialog, int which) {
  34.                         result.confirm();
  35.                     }
  36.                 });
  37.                 b.setCancelable(false);
  38.                 b.create().show();
  39.                 return true;
  40.             }

  41.         });
复制代码








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部