【问题标题】:Fire Chrome Alarms from background service when using cca Google Chrome apps使用 cca Google Chrome 应用程序时从后台服务触发 Chrome 警报
【发布时间】:2014-10-07 01:54:59
【问题描述】:

使用移动 Chrome 应用 API 进行实验:(https://github.com/MobileChromeApps/mobile-chrome-apps)

我想要实现的是注册我的 chrome 警报,而不必粗暴地启动应用程序的主要活动,因为这会导致糟糕的用户体验。

挑战: 我指定了一个 chome.alarm,当我打开应用程序时它会成功注册(例如,'cca run android')。这些警报在 background.js 文件中指定,该文件在 manifest.json 文件中声明为后台脚本。

我希望这些在启动时自动注册,因此我实现了一个后台服务,并认为我可以简单地调用应用程序来注册 background.js 文件中指定的警报。但是,到目前为止,我能找到的唯一方法是通过后台服务中的 Intent 调用来启动应用程序的主要活动,如下面更详细说明的那样。

在启动时,我的后台服务只是调用:

//Launch main activity..
Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.company.appname");
startActivity(LaunchIntent);

上面将应用程序启动到其主要活动中,并根据需要注册上述 chrome.alarms。快乐的时光!当然,这样做的一个巨大缺点是没有用户希望在启动时打开完整的主活动窗口。

请告知是否有一种不那么笨拙的方法可以让后台线程在启动时注册 background.js 中指定的 chrome.alarm。我不想打开应用程序的 mainActivity,但这是目前我能看到的让它们注册的唯一方法。最好不要在 Android SDK 中注册这些警报,因为我打算尽可能接近使用 Web API,并希望使用 background.js 作为钩子来做到这一点,从而使事情与 chrome Web 应用程序保持一致——作为安卓平台。

我做了什么:

一个 cca(chrome 移动网络应用程序)应用程序,它本机注册后台服务(我扩展了 BackgroundService)作为插件并将其注册为在启动时运行。这是在启动时加载应用程序的唯一“原生 android 代码”。

在启动 android 时,此后台服务会简单地发出 startActivity(LaunchIntent) 以打开应用程序。这样,我在我的 background.js 文件中指定的 chrome.alarm 就成功注册了。如果我不这样做,在我手动打开应用程序主活动之前,我在 background.js 中指定的 chrome 警报不会被注册。因此我使用 backgroundService 打开应用程序的主要活动。 这一点都不理想,我只是想以某种方式注册我的 chrome.alarms,而不必粗暴地启动应用程序的主活动窗口。

是否可以在我的 BackgroundService 中进行调用,以仅读取我的 background.js 文件中包含的 chrome.alarms 并注册触发? 感谢您的宝贵时间。

【问题讨论】:

    标签: google-chrome-app cordova-chrome-app


    【解决方案1】:

    首先,感谢您使用 Chrome 移动应用! (注:我在这个项目上工作)

    很抱歉,我们当前的引导程序“粗糙”且“笨拙”,我们同意这一点。您可以跟踪this issue,了解我们用真正的后台服务和多窗口支持替换当前的 Background-scripts-embedded-in-main-Activity-webview 策略的进展。基本上你已经准确地总结了我们的计划和现有的限制。

    这项工作实际上是近期安排的,肯定会在年底前完成。

    chrome.alarms 一样,此功能对于chrome.gcmchrome.tcpServer(以及其他原因)非常重要。

    【讨论】:

    • 感谢@mmocny 将我指向相关的问题跟踪器。 Clunky 是一个被夸大的词,至少它确实存在(:确实期待这个进展!
    • 嘿,重读我可能听起来很尖刻。不是故意的,你在钱上是对的。 (不过,这可能是我们在 iOS 上能做的最好的事情,以后会看到)。
    猜你喜欢
    • 1970-01-01
    • 2017-03-07
    • 2022-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-15
    相关资源
    最近更新 更多