从 Apache Cordova 应用程序调用 API 无效 (Android)
Calling API from Apache Cordova app not working (Android)
我正在开发一个 Apache Cordova 应用程序,它在尝试加载地图时卡住了。它适用于 android 4.2.2,但不适用于更新的版本 7.0.0/7.1.1。
我尝试从我的 index.html 文件中调用它,下一行:
<script type="text/javascript" src="http://api.cercalia.com/api/cercalia.js?key=[key]&theme=red"></script>
我还使用 API 在线代码在我的 JS 文件夹中创建了一个测试文件,它运行良好。
我怀疑 whitelist
插件可能无法正常工作。
关于如何解决这个问题有什么想法吗?
显然我只需要在 index.html
标题上添加下一个元标记:
<meta http-equiv="Content-Security-Policy" content="default-src *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' *">
这将正确加载地图。
好的,所以我找到了问题。
window.cordova.plugins
未定义。这是在以前的 cordova 版本中放置插件的标准或常见位置,但在 corvoda 7 中没有定义。
我发现这行代码导致了问题:
if (window.cordova && window.cordova.plugins.firebase && window.cordova.plugins.firebase.analytics) {
我不知道为什么在错误消息中显示 -
!
您需要互联网权限
转到应用程序 -> 源代码 -> 主 -> AndroidManifest.xml。
添加以下代码
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.java2blog.helloworldapp">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".HelloWorldActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
我正在开发一个 Apache Cordova 应用程序,它在尝试加载地图时卡住了。它适用于 android 4.2.2,但不适用于更新的版本 7.0.0/7.1.1。
我尝试从我的 index.html 文件中调用它,下一行:
<script type="text/javascript" src="http://api.cercalia.com/api/cercalia.js?key=[key]&theme=red"></script>
我还使用 API 在线代码在我的 JS 文件夹中创建了一个测试文件,它运行良好。
我怀疑 whitelist
插件可能无法正常工作。
关于如何解决这个问题有什么想法吗?
显然我只需要在 index.html
标题上添加下一个元标记:
<meta http-equiv="Content-Security-Policy" content="default-src *; script-src 'self' 'unsafe-inline' 'unsafe-eval' *; style-src 'self' 'unsafe-inline' *">
这将正确加载地图。
好的,所以我找到了问题。
window.cordova.plugins
未定义。这是在以前的 cordova 版本中放置插件的标准或常见位置,但在 corvoda 7 中没有定义。
我发现这行代码导致了问题:
if (window.cordova && window.cordova.plugins.firebase && window.cordova.plugins.firebase.analytics) {
我不知道为什么在错误消息中显示 -
!
您需要互联网权限
转到应用程序 -> 源代码 -> 主 -> AndroidManifest.xml。
添加以下代码
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.java2blog.helloworldapp">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".HelloWorldActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>