Manifest.json文档说明

    Manifest.json文件是5+移动App的配置文件,用于指定应用的显示名称、图标、应用入口文件地址及需要使用的设备权限等信息。是扩展的配置文件,指明了扩展的各种信息。

    一个manifest.json格式如下:

{

    // 必须的字段3个

    "name": "MyExtension", // 扩展名称

    "version": "1.0", // 版本。由1到4个整数构成。多个整数间用"."隔开

    "manifest_version": 2, // manifest文件版本号。Chrome18开始必须为2

    // 建议提供的字段3个

    "description": "",   // 描述。132个字符以内

    "icons": {

       "16": "image/icon-16.png",

       "48": "image/icon-48.png",

       "128": "image/icon-128.png"

    }, //扩展图标。推荐大小16,48,128

    "default_locale": "en", // 国际化

    // 以下字段多选一,或者都不提供

    "browser_action": {

       "default_icon": "image/icon-128.png",

        "default_title": "My Test",

       "default_popup": "html/browser.html"

    }, //地址栏右侧图标管理。含图标及弹出页面的设置等

    "page_action": {

        "default_icon": "image/icon-48.png",

        "default_title": "My Test",

        "default_popup": "html/page.html"

    }, //地址栏最后附加图标。含图标及行为等

    "theme": {}, // 主题,用于更改整个浏览器的外观

    "app": {}, // 指定扩展需要跳转到的URL

    // 根据需要提供

    "background": {

       "scripts": [

           "lib/jquery-3.3.1.min.js",

           "js/background.js"

       ] ,

        "page":"html/background.html"

    }, // 指定扩展进程的background运行环境

    "chrome_url_overrides": {

       "pageToOverride": "html/overrides.html"

    }, //替换页面。详见注释1

    "content_scripts": [{

      "matches": ["https://www.baidu.com/*"],

      "css": ["css/mystyles.css"],

      "js": ["lib/jquery-3.3.1.min.js", "js/content.js"]

    }], // 指定在web页面运行的脚本。详见注释2

    "content_security_policy": "",  // 安全策略

    "file_browser_handlers": [],   

    "homepage_url": "http://xxx", // 扩展的官方主页

    "incognito": "spanning", // 或"split"。详见注释3

    "intents": {}, // 用户操作意图描述

    "key": "", // 扩展唯一标识。不需要人为指定

    "minimum_chrome_version": "1.0", // 扩展所需chrome的最小版本

    "nacl_modules": [],  // 消息与本地处理模块映射

    "offline_enabled": true, // 是否允许脱机运行

    "omnibox": {

       "keyword": "myKey"

    }, //ominbox即地址栏。用于响应地址栏的输入事件

    "options_page": "aFile.html", // 选项页。用于在扩展管理页面跳转到选项设置

    "permissions": [

       "https://www.baidu.com/*",

       "background",

       "tabs"

    ], //权限。详见注释4

    "plugins": [{

       "path": "extension_plugin.dll",

       "public": true

    }], // 扩展。可调用第三方扩展

    "requirements": {}, // 指定所需要的特殊技术。目前只支持"3D"

    "update_url": "http://path/to/updateInfo.xml",   // 自动升级

    "web_accessible_resources": [] // 指定资源路径,为String数组

}

    在manifest.json的page节点中写入可处理的url,key为handleUrl,value是url的正则的数组,每个正则的域名部分必须不可正则,并在页面中需要加入对应的处理逻辑;服务端在开发者上传包后接下handleUrl,验证后存起来。

    解析manifest.json。下载美柚的rpk包,manifest文件如下:

{
  "package": "com.lingan.seeyouxiaomi",
  "name": "美柚",
  "version": "1.2",
  "versionCode": 3,
  "versionName": "1.2",
  "minPlatformVersion": 100,
  "icon": "/Common/resources/logo_180.png",
  "features": [
    {
      "name": "com.miui.hybrid.features.Network"
    },
    {
      "name": "system.fetch"
    },
    {
      "name": "system.storage"
    },
    {
      "name": "system.prompt"
    }
  ],
  "permissions": [
    {
      "origin": "*"
    }
  ],
  "config": {
    "logLevel": "debug"
  },
  "router": {
    "entry": "Home",
    "pages": {
      "Home": {
        "component": "home"
      },
      "Me": {
        "component": "me"
      },
      "Setup": {
        "component": "setup"
      },
      "Records": {
        "component": "records"
      },
      "About": {
        "component": "about"
      },
      "Login": {
        "component": "login"
      },
      "Setpw": {
        "component": "setpw"
      },
      "Tips": {
        "component": "tips"
      }
    }
  },
  "display": {
    "backgroundColor": "#ffffff",
    "titleBar": true,
    "titleBarBackgroundColor": "#ff5073",
    "titleBarTextColor": "#ffffff",
    "pages": {
      "Home": {
        "titleBarText": "美柚"
      },
      "Me": {
        "titleBarText": "美柚"
      },
      "Setup": {
        "titleBarText": "经期设置"
      },
      "Records": {
        "titleBarText": "我的记录"
      },
      "About": {
        "titleBarText": "关于美柚"
      },
      "Login": {
        "titleBarText": "登入"
      },
      "Setpw": {
        "titleBarText": "填写密码"
      },
      "Tips": {
        "titleBarText": "今日贴士"
      }
    }
  }
}

PS.json分为JSONArray和JSONObject两种。

json,就是一个键对应一个值,一对一关系。

例如:[{name1:{name2:{name3:'value1',name4:'value2'}}},{}]

上述例子就是一个数组,数组里面是两个json格式的字符串。如果需要取出name4的值。

  • 将以上字符串转换为JSONArray对象;
  • 取出对象的第一项,JSONObject对象;
  • 取出name1的JSONObject对象;
  • 取出name2的JSONObject对象;
  • 取出name4的值value2。

json数组格式的字符串可以通过方法直接转换为JSONArray的格式:

JSONArray.fromObject(String)
JSONArray getJsonArray=JSONArray.fromObject(arrayStr);//将结果转换成JSONArray对象的形式  
JSONObject getJsonObj = getJsonArray.getJSONObject(0);//获取json数组中的第一项  
String result=getJsonObj.getJSONObject("name1").getJSONObject("name2").getJSONObject("name4"); 

JSONObject:json对象,就是一个键对应一个值,使用的是大括号{},如{key:value}

JSONArray:json数组,使用中括号[],只不过数组里面的项也是json键值对格式的。

json对象中添加的是键值对,JSONArray中添加的是Json对象。

JSONObject和Map

    map和json都是键值对,不同的是map中键值对中间用等号分开,json中键值对中间用冒号分开。其实json就是一种特殊形式的map。

Map strmap=new JSONObject();

request对象获取的map,可以直接返回json格式。

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Manifest.json文档说明)