是否可以在Adobe AIR应用程序中生成PDF文档而无需借助往返Web服务来生成PDF?我查看了GoogleCode上的初始Flex报告,但它需要往返才能生成实际的PDF.
鉴于AIR应该是RIA的桌面端,有没有办法实现这一目标?我怀疑我忽略了一些东西,但我对文档的搜索没有透露太多,并且考虑到AIR的目标,我无法相信它只是他们没有包含的东西.
有没有办法允许非管理员用户在Windows上安装,升级或卸载Adobe AIR应用程序?
我已经创建了一个Adobe AIR应用程序,并.air使用标准AIR机制将其打包为一个包,用于创建部署包.如果普通用户或高级用户尝试安装此AIR应用程序,则应用程序事件日志会显示错误,指出需要管理权限.即使用户在安装期间提升,使用自动AIR升级系统进行升级仍然需要管理权限(因为升级基本上是在幕后卸载.msi软件包,然后安装另一个.msi软件包).
有没有办法解决?
到目前为止我尝试过的是:
我猜测安装和升级对于用户来说都可以正常工作
我也猜测OSX和Linux上不存在这个问题,因为它们对每个用户的应用程序安装有更直观的概念.
我想将安装程序包部署到我的客户.我的应用程序基本上是一个网站,但我希望他们能够获得最佳体验.Chrome或Mozilla Prism.我想给他们一个安装程序(win:msi/exe),在桌面上放置一个图标并启动我的应用程序.他们可能已经安装了Chrome,也可能没有安装Firefox.
我做了一些浅薄的搜索,但已经干了.我不能帮助,但我想我不是第一个想要这样做的人.我认为Adobe Air有这样的事情,但我过去曾遇到Air问题.
air windows-installer google-chrome web-applications mozilla-prism
我在Rails 3中有一个REST API,有时可以从AIR应用程序访问,有时也可以从浏览器访问.
我认为这是一个Rails 3问题,但它可能是一个Flex/AIR问题.
Rails应用程序使用omniauth进行身份验证,使用cancan进行授权,使用active_record_store.我使用会话模型来存储用户的身份.
(有一个原因我没有使用cookie会话,与AIR for Android,OAuth和StageWebView有关.)
我正在使用Charles来监控HTTP流量.
大多数请求工作正常.浏览器(或AIR客户端)使用Cookie http标头将会话ID发送到服务器,如下所示:
_session_id=950dee7eca6732aa62b5f91876f66d15
Run Code Online (Sandbox Code Playgroud)
并且Rails找到会话,确定用户是谁,并做其事.
但在某些情况下,Rails会在发送响应之前生成新会话.它向会话表添加会话,并使用新的会话ID 向客户端返回Set-Cookie标头.像这样:
_session_id=e1489a6b610c0a1d13cec1454228ae47; path=/; HttpOnly
Run Code Online (Sandbox Code Playgroud)
发生这种情况的情况是:
这显然是一个问题,因为在后续请求中,Rails无法找到用户信息.它创建了一个没有该信息的新会话.
所以我正在查看POST请求的HTTP头.这是Charles的复制/粘贴; 我在标题名称后插入冒号以使其可读.
Host: localhost.seti.hg94.com:3000
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/531.9 (KHTML, like Gecko) AdobeAIR/2.6
Referer: app:/AndroidApplication.swf
X-Flash-Version: 10,2,152,22
Accept: */*
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Cookie: _session_id=950dee7eca6732aa62b5f91876f66d15
Content-Length: 84
Connection: keep-alive
Run Code Online (Sandbox Code Playgroud)
有没有人对Rails在这种情况下会产生新会话的原因有任何见解?它似乎是在我的控制器代码执行后发生的,因为我在控制器中有正确的会话信息.
我正忙着尝试进一步隔离问题,控制AIR内的标题,等等.我已经在这个bug上工作了将近一个星期.因此,非常感谢社区的任何见解或建议.
我正在将Flash 8应用程序移植到Android,并且没有Android设备.
我已经安装了模拟器,但发现它非常慢.
我也在VirtualBox中安装了Android 2.2
它很棒.速度比模拟器好10倍.
我的问题:我无法弄清楚如何在Android-x86(英特尔版Android)中安装Flash或Air.这可能是因为我发现的所有Flash apk都是基于ARM的.有没有人知道是否有基于英特尔Android的Flash apk?或libflashplayer.so为任何地方的基于英特尔的Android构建?
有任何想法吗?谢谢!
而不是使用Android x86,考虑使用英特尔的Haxm加速来将ARM仿真速度提高大约10倍.我一直在为其他项目做这件事,而且比使用设备要快
http://software.intel.com/en-us/articles/speeding-up-the-android-emulator-on-intel-architecture
主要说明:我有一位来自Adobe的员工回复说它尚未获得官方支持(2011年4月).
注意:看来基于intel的libflashplayer.so必须存在于某个地方,因为在英特尔处理器上运行GoogleTV版Android的Logitech Revue已经出局:
http://androidspin.com/2010/10/25/logitech-revue-strips-down-showing-its-1-2ghz-processor/
注意:我尝试使用Web上的各种建议安装市场(因此我可以通过市场安装Flash),但没有取得真正的成功.它安装,但每当我尝试加载它时失败
应用程序Market(com.android.vending)意外停止.请再试一次.
我已经清除了Market应用程序的缓存和数据,但没有成功.
我也尝试通过浏览器加载我在网上找到的各种Flash APK文件,但也没有成功.这适用于其他APK,但不适用于Flash,我认为这是因为我发现的APK都是基于ARM的,而不是基于Intel的.
注意:我也尝试使用adb connect IP-OF-VM安装任何APK,然后进行安装,但也没有运气.
谢谢!
假设我有一个包含表单的html文件:
<form method="post" action="url">
<input type="text" id="fullname" />
<input type="text" id="bodyText" />
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
我们HTMLLoader在swf文件中加载了这个html 文件.
_htmlLoader = new HTMLLoader();
_htmlLoader.paintsDefaultBackground = false;
var req:URLRequest = new URLRequest(urlValue);
_htmlLoader.load(req);
_stage.addChild(_htmlLoader);
Run Code Online (Sandbox Code Playgroud)
在Loader主应用程序内部加载此Swf文件后,文本框是只读的,无法输入.但我们可以使用鼠标改变它们的焦点.
var loader1:Loader = new Loader();
loader1.load(new URLRequest("path to file.swf"));
// ...
this.addChild(loader1);
// ...
Run Code Online (Sandbox Code Playgroud)
问题是什么?
使用捕获运行时更新AIR应用程序机制的逻辑是什么?应该为Windows和Mac分发应用程序.
我被困在这里:
请注意,这并不一定意味着您需要实现自己的自动更新机制.如果使用商业工具来创建安装程序,则可能包含可以利用的自动更新机制.另一方面,如果您确实需要编写自己的更新机制,则应该在实现中找到方便的URLStream,File和NativeProcess API.
阅读之后:http://www.adobe.com/devnet/air/articles/air3-install-and-deployment-options.html
是这样的(对于Windows,在应用程序安装了一些.exe或.msi安装程序后):
应该在启动应用程序之前强制更新它.
如何覆盖正在运行的应用?或者制作另一个应用程序(更新程序)来替换文件,之后用NativeProcess启动主应用程序?
我们有一个我们希望跨多个设备部署的程序.
除了一些UI内容之外的代码在很多部分中是相同的.我想知道什么是最好的方法.我们应该有一个共享的库项目,还是应该有一个大项目,通过ant或其他方法控制不同的编译器设置.
Apple已通过以下声明通知,所以想确保它并不意味着限制AIR开发iOS应用程序?
(https://developer.apple.com/news/index.php?id=12172013a#top)
使您的应用程序与iOS 7无缝协作
2013年12月17日
从2月1日开始,提交到App Store的新应用和应用更新必须使用最新版本的Xcode 5构建,并且必须针对iOS 7进行优化.通过查看iOS人机界面指南,了解有关准备应用的更多信息.
谢谢,
Sanniv.
也许我的问题听起来像之前被问过100次,但相信我,我已经阅读了100个类似问题的每个答案,而不是他们解决了我的问题.因此,我原生扩展的目的是在我的应用缓存文件夹(doc,pdf等)中与第三方应用(Quick Office,Adobe Reader等)共享文档.我发现FileProvider和Intents应该可以解决我的问题.
我的应用说明文件包含:
<application android:enabled="true"
android:launchMode="singleInstance">
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.test.fileprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
</application>
Run Code Online (Sandbox Code Playgroud)
在Eclipse中的Project属性 - > Java Build Path - > Order and Export selected:Android Private libraries和Android Dependencies.android-support-v4.jar位于项目的libs文件夹中.
FREFunction代码摘录:
package com.test.OpenWithDefaultApp.functions;
.....
import android.content.Intent;
import android.net.Uri;
import android.support.v4.content.FileProvider;
.....
Uri contentUri = FileProvider.getUriForFile(context.getActivity(), "com.test.OpemWithDefaultApp.fileprovider", file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(contentUri, fileType);
.....
context.getActivity().startActivity(intent);
.....
Run Code Online (Sandbox Code Playgroud)
我正在使用
Eclipse Luna 4.4.0
Eclipse Android Plugin 23.0.3
Android SDK Tools 23.0.2
Android SDK Platform-tools 20
Android SDK Build-tools 20 …Run Code Online (Sandbox Code Playgroud) air ×10
android ×3
apache-flex ×3
flash ×2
ios ×2
adobe ×1
cookies ×1
html ×1
http-headers ×1
installation ×1
intel ×1
loader ×1
permissions ×1
printing ×1
ria ×1
windows ×1
xcode ×1