我的AndroidManifest.xml中有什么东西阻止外部JS和CSS加载吗?

时间:2017-12-24 05:34:52

标签: javascript android html css cordova

这是我的Cordova Android App的AndroidManifest.xml:

<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="10016" android:versionName="1.0.16" package="com.winetrackerco.app" xmlns:android="http://schemas.android.com/apk/res/android">
    <supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
    <uses-permission android:name="android.permission.INTERNET" />
    <application android:hardwareAccelerated="true" android:icon="@mipmap/icon" android:label="@string/app_name" android:supportsRtl="true">
        <activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/activity_name" android:launchMode="singleInstance" android:name="MainActivity" android:theme="@android:style/Theme.DeviceDefault.NoActionBar" android:windowSoftInputMode="adjustResize">
            <intent-filter android:label="@string/launcher_name">
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="winetrackerco" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:host=" " android:pathPrefix="/" android:scheme=" " />
            </intent-filter>
        </activity>
        <provider android:authorities="${applicationId}.provider" android:exported="false" android:grantUriPermissions="true" android:name="android.support.v4.content.FileProvider">
            <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/provider_paths" />
        </provider>
        <provider android:authorities="${applicationId}.sharing.provider" android:exported="false" android:grantUriPermissions="true" android:name="nl.xservices.plugins.FileProvider">
            <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/sharing_paths" />
        </provider>
    </application>
    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="26" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>

这里有什么东西会阻止我的外部javascript和css文件加载,或者我需要添加哪些内容以便加载它们?

以下是有问题的非加载文件:

<link rel="stylesheet" href="https://app.winetracker.co/dist/application.min.20171213v2.css">
<script src="https://app.winetracker.co/dist/thirdparties.min.20171213v2.js"></script>
<script src="https://app.winetracker.co/dist/application.min.20171213v2.js"></script>

3 个答案:

答案 0 :(得分:1)

不确定cordova,但如果启用了以下设置,android Web视图将加载外部js

WebView myWebView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);

Follwing标志也有助于加载外部js,因为一些js需要dom存储启用。

WebSettings.setDomStorageEnabled(true)

答案 1 :(得分:1)

您可以尝试使用cordova plugin whitlistContent Security Policy

我希望我们可以阻止js和css文件

答案 2 :(得分:0)

感谢您的回答。事实证明,我的SSL设置中缺少“中间证书”,导致APK的发布版本拒绝加载JS和CSS文件。

enter image description here

我在NGINX服务器上重新配置了SSL证书,现在一切正常!呜!