Sencha Touch + Cordova + Android - 如何配置项目url?

Posted

技术标签:

【中文标题】Sencha Touch + Cordova + Android - 如何配置项目url?【英文标题】:Sencha Touch + Cordova + Android - How to configure the project url? 【发布时间】:2015-05-30 05:16:12 【问题描述】:

我正在开发一个具有多个子域的项目。我将 Sencha Touch 框架和 Cordova 用于 android 应用程序。在浏览器项目中工作正常。我为发布模式构建了带有签名 apk 的 android apk。

我在用 ajax 处理服务器时遇到了严重的问题。每当我尝试使用 ajax 到达服务器端时,用户会话就会被破坏。

我也对我的 cordova config.xml 设置有疑问。

我的问题是:

    我的项目网址如 *.quiz.co 。所以如何配置我的 config.xml 文件以及如何为我的项目指定自定义 url。如果我使用 window.open() 或 top.location.href 或任何它重定向到我的自定义域 url 但我的 android apk 项目基于 prodution 代码而不是 apk 代码。

    当我在手机中启动我的 android apk 时,它的起始 URL 是“file:///assets/www.index.html”。那么我怎样才能基于自定义域(如 *.quiz.co)运行我的应用程序

    当我使用重定向到自定义域时。服务器端用户会话在每个 ajax 调用中被破坏。那么如何在ajax调用中维护用户会话?

config.xml:

<?xml version='1.0' encoding='utf-8'?>

<name>Master Quiz</name>

<description>
    Quiz Application for Android platform.
</description>

<icon src="www/img/icon.png" />
<icon src="www/img/icon.png" platform="android" density="ldpi" />
<icon src="www/img/icon.png" platform="android" density="mdpi" />
<icon src="www/img/icon.png" platform="android" density="hdpi" />
<icon src="www/img/icon.png" platform="android" density="xhdpi" />

<content src="index.html" />

<platform name="android">
    <preference name="Fullscreen" value="true" />
</platform>

<feature name="InAppBrowser">
    <param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser" />
</feature>

<!-- Wildcards are allowed for the protocol, as a prefix
to the host, or as a suffix to the path -->
<allow-navigation href="*" />

<!-- Allow all unrecognized URLs to open installed apps
    *NOT RECOMMENDED* -->
<allow-intent href="*" />

<!-- Don't block any requests -->
<access origin="http://*" />

</widget>

Android 权限:

<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

【问题讨论】:

【参考方案1】:

哪个版本的 Cordova?我之所以问,是因为 4 月的最新版本现在要求您使用 Cordova 白名单插件。

【讨论】:

科尔多瓦版本 4.1.2 白名单已移至插件when 4.0 was released。 是的,我也检查了该文件。但我想知道 android apk 是如何工作的。我在生产中部署了代码所以如果我运行像adb.quiz.co 这样的移动浏览器,它将运行。但是在 Android 应用程序中,如果我提供这样的 url,我将基于生产代码运行。但是那个应用程序没有使用 apk 代码。我说的对吗? 我想我不明白你在做什么。通常,Cordova 会构建一个本地包装器,用于加载加载应用程序第一页的 Web 视图。您的应用可能需要进行 HTTP 调用来发送/接收数据,对吧?如果没有白名单,您将根本无法拨打这些电话。您可以使用remote debugging features in Chrome 轻松调试它。在开发者工具中,查看 Network 选项卡,它应该会显示所有调用以及它们是否成功。

以上是关于Sencha Touch + Cordova + Android - 如何配置项目url?的主要内容,如果未能解决你的问题,请参考以下文章

Sencha Touch cordova.local.properties不见了。

IBM Woklight、Sencha Touch、Cordova 的区别?

Sencha Touch native - Cordova 构建失败并出现 EACCES 错误

如何在 Sencha Touch 代码中获取 Cordova 插件的参考

Sencha Touch 1 和 2 之间的差异,尤其是 Cordova/Phonegap

Sencha Touch + Cordova + Android - 如何配置项目url?