抱歉,该网页目前还不存在中文版本,请继续浏览其他网页!

权限

xwalk_permissions字段是Crosswalk对于W3C manifest的扩展。在打包安卓版Crosswalk应用时,它被用来在AndroidManifest.xml文件中设定权限。

这是必须的,因为Android应用不可以在运行时请求permission:所有应用需要的permission必须在安装的时候被授予。在其他章节中((Crosswalk Tizen,嵌入式API),这个字段是被忽略的。

注意: 如果你正在通过个嵌入式API从manifest中加载应用,那么你必须在AndroidManifest.xml中为Crosswalk应用手动添加permission。请参见 下文,其中是关于Crosswalk的web APIs需要的permission的指导。

对Android打包的影响

Crosswalk App Toolsmanifest.json中的permissions或者xwalk_permissions转换成AndroidManifest.xml中的<android:uses-permission>元素。

例如,给定下列的manifest:

{
  "name": "simple",
  "start_url": "index.html",
  "xwalk_permissions": [
    "Contacts",
    "Geolocation",
    "Messaging",
    "Vibration"
  ],
  "icons": [{
    "src": "icon96.png",
    "type": "image/png",
    "sizes": "96x96",
    "density": "2.0"
    }
  ]
}

...并且这个crosswalk-pkg <Path to directory that contains a web app>命令行:

crosswalk-pkg <Path to directory that contains a web app>

...生成下列的AndroidManifest.xml权限:

<!-- 打包过程中默认添加的权限 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<!-- 在manifest文件中添加的权限-->
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.VIBRATE"/>

注意crosswalk-pkg命令通常添加一个默认集合的permission(在上例中的第一组)。第二组的permission是在manifest中的xwalk_permissions字段添加的。manifest中的permission和Android permission的对应关系在下表中展示。

API需要的permission

如果你想在应用中使用一些Crosswalk的web API,你可能需要在AndroidManifest.xml中添加权限使得那些API可访问。你需要手动添加(如果你在使用嵌入式API)。

下表展示了web API分别需要哪些permission。

Crosswalk web API AndroidManifest.xml permission(s)
Contacts android.permission.READ_CONTACTS
android.permission.WRITE_CONTACTS
Geolocation android.permission.ACCESS_FINE_LOCATION
Messaging android.permission.READ_SMS
android.permission.READ_PHONE_STATE
android.permission.RECEIVE_SMS
android.permission.SEND_SMS
android.permission.WRITE_SMS
Vibration android.permission.VIBRATE

例如,你可能有一个嵌入Crosswalk运行时的Android应用,并且想要在应用的web应用部分使用JavaScript 震动API。这种情况下,你需要手动地将这个permission加入到AndroidManifest.xml中:

<uses-permission android:name="android.permission.VIBRATE"/>