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 插件的参考