我的Android Cordova应用程序遇到奇怪的行为,显然忽略了config.xml和AndroidManifest.xml中设置的指令。具体来说,文本中的外部超链接似乎完全不活动,写入外部存储器不起作用,我的地理位置按钮在Android Studio的调试器中引发以下错误:
Caught security exception while registering for location updates from the system.
The application does not have sufficient geolocation permissions.
我已经阅读了许多Q& As这些问题,都指向上面提到的两个XML文件。
我的config.xml包括:
<access launch-external="yes" origin="*" />
<allow-navigation href="*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
我的AndroidManifest.xml包括:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
我的index.html包括:
<meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'; media-src *">
(这似乎有效,因为改变这会阻止app通过互联网加载一些外部JS库)
...这似乎涵盖了每个人对我能找到的主题的建议。就像XML文件被忽略一样。
顺便说一句,该应用程序在iOS上编译并运行就好了。