首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于获取远程js/css文件的Cordova和网络访问

用于获取远程js/css文件的Cordova和网络访问
EN

Stack Overflow用户
提问于 2017-08-15 19:32:34
回答 2查看 293关注 0票数 0

我正在创建一个简单的cordova应用程序。我所有的资产都是本地的。我为like button添加了一个facebook端点。但是,通过cordova build android && cordova run android运行并没有显示“相似”按钮。

使用cordova serve和localhost可以工作,我可以看到fb-like button

我是否必须构建一个签名版本apk才能获取远程js/css文件?

请在下面找到相关信息。

另外,之前我从远程加载google-material css资产和字体,但由于互联网不工作,我只是在本地复制文件。但是我不想对fb的sdk做同样的事情。

在谷歌上搜索,我发现了android.permission.INTERNET,但它已经出现在我的AndroidManifest.xml中了。我增加了几个权限。

我是在我的本地安卓设备上运行的,我已经在它上启用了usb-debuggingdeveloper mode。当应用程序启动时,它只是加载,不请求我的许可。我还没有用apk版本进行测试,因为这需要签名。

情况会是这样吗?怎么才能强迫它申请许可呢?

我在Ubuntu16.04与科多瓦安卓版本的6.2.3。我正在android 5.1.1 device上测试。

代码语言:javascript
运行
复制
└─ $ ▶ cat platforms/platforms.json 
{
    "android": "6.2.3"
}ashish @ 7567 ~/work/be_autonomous/cordova (master) 
ashish @ 7567 ~/work/be_autonomous/cordova (master) 
└─ $ ▶ cordova --version
7.0.1
ashish @ 7567 ~/work/be_autonomous/cordova (master) 
└─ $ ▶ cat config.xml 
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.beautonomous.first" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>BeAutonomous</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <author email="dev@cordova.apache.org" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="index.html" />
    <access origin="*" />
    <allow-intent href="http://*/*" />
    <allow-intent href="https://*/*" />
    <allow-intent href="tel:*" />
    <allow-intent href="sms:*" />
    <allow-intent href="mailto:*" />
    <allow-intent href="geo:*" />
    <platform name="android">
        <allow-intent href="market:*" />
    </platform>
    <platform name="ios">
        <allow-intent href="itms:*" />
        <allow-intent href="itms-apps:*" />
    </platform>
    <engine name="android" spec="^6.2.3" />
    <plugin name="cordova-plugin-whitelist" spec="^1.3.2" />
</widget>
ashish @ 7567 ~/work/be_autonomous/cordova (master) 
└─ $ ▶ cat 
BeAutonomous.apk   hooks/             .npmignore         package-lock.json  plugins/           run_emulator.sh    run_studio.sh      www_org/           
config.xml         node_modules/      package.json       platforms/         res/               run.sh             www/               
ashish @ 7567 ~/work/be_autonomous/cordova (master) 
└─ $ ▶ cat platforms/android/
android.json         assets/              build.gradle         CordovaLib/          gradle/              gradlew              libs/                project.properties   settings.gradle      wrapper.gradle
AndroidManifest.xml  build/               cordova/             .gitignore           .gradle/             gradlew.bat          platform_www/        res/                 src/                 
ashish @ 7567 ~/work/be_autonomous/cordova (master) 
└─ $ ▶ cat platforms/android/AndroidManifest.xml 
<?xml version='1.0' encoding='utf-8'?>
<manifest android:hardwareAccelerated="true" android:versionCode="10000" android:versionName="1.0.0" package="com.beautonomous.first" 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" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <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="singleTop" 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>
        </activity>
    </application>
    <uses-sdk android:minSdkVersion="16" android:targetSdkVersion="25" />
</manifest>
ashish @ 7567 ~/work/be_autonomous/cordova (master) 
└─ $ ▶ 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-17 13:59:15

Facebook有从//facebo...开始的url。在Android中,它将重定向到file://facebo..

因此,加载facebook失败。

为了找到这个bug,我不得不在chrome控制台中调试这个应用程序。如果您可以将app本地部署到usb debugging上的设备上,则打开chrome并键入chrome://inspeect/#devices并在控制台中写入错误。

但是,即使在修正了添加https://facebo..之后,它也是不可见的。原因是facebook创建了一个iframe,它在科多瓦是不可见的。

票数 0
EN

Stack Overflow用户

发布于 2017-08-15 19:40:47

是的,您可以获取远程css和js文件。我以前做过。最重要的是"cordova.js“和”document.addEventListener“(”deviceready“,onDeviceReady,false);”必须在本地进行评估。您可以将其他文件放到服务器上,然后从那里调用它们。

第二,你必须有互联网许可,并访问原产地的权利。我可以看到您的config.xml有这个选项,所以您就这样做了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45700191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档