我正在尝试embed the Crosswalk runtime作为WebView
替换其他Java代码的应用程序(即不是Web应用程序的简单包装器)。
现在他们的official documentation表示您无论如何都需要以下权限 :
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<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" />
这很多!
所以我尝试使用较少的权限。我发现以下权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
这没关系。因此,如果这已经足够,那么与文档中给出的列表相比,这将是一个重大改进。
但也许在某些情况下也需要其他人。有人可以澄清吗?在什么情况下需要其他权限?只有通过JavaScript触发某些操作时?然后人们可以在没有这些的情况下使用Crosswalk,可能,对吧?
答案 0 :(得分:2)
虽然你对官方文件的说法是正确的,但在人行横道网站上存在一些相互矛盾的信息也是如此。
具体来说,这个链接埋在Cordova迁移部分:
Migrate using command line tools
建议:
Crosswalk需要一些额外的权限,这些权限未由Cordova应用程序生成器插入。
并具体引用:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
点是,cordova只添加
<uses-permission android:name="android.permission.INTERNET" />
因此必须得出唯一真正需要的权限是:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
正如你所说的那样。
我的猜测是,Crosswalk团队在列表中添加了webview支持的所有功能/扩展共同需要的所有权限的联合(包括访问WebRTC会话的摄像头)。
在这方面,该列表是合适的(与其他独立浏览器的运动非常相似),可能是为了缩短解释。
顺便说一下,我已经做了一个测试并删除了&#34; CAMERA&#34;来自清单的许可,并且webview慷慨地处理了缺席(它没有使应用程序崩溃,相机停止工作并给出了黑色图片),这似乎指出你可以为你的用户处理webview即使使用有限的权限集也可以进行通用浏览(但不要理解我:我刚试过相机!)希望这有帮助