将变量从Phonegap应用程序传递到Android服务

时间:2016-03-23 16:56:27

标签: android cordova

我有一个带登录表单的Phonegap应用程序。登录功能使用localStorage.setItem()来存储用户登录后的语言,以便下次打开应用程序时,登录前的屏幕可以尝试猜测用户想要什么语言由于这不是关键数据,因此本地存储可能会被删除并不重要 - 如果需要,它只会回归英语。完全符合我的需求。

在Phonegap之外,还有另一项在后台运行的服务,在特定用户操作后,自动启动对静态电话号码的呼叫+启动其中一个Phonegap屏幕。代码如下:

Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
callIntent.setData(Uri.parse("tel:123456789"));
startActivity(callIntent);

Intent emergencyIntent = new Intent(getApplicationContext(), EmergencyActivity.class);
emergencyIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplicationContext().startActivity(emergencyIntent);

除了我们已经决定不再使用静态号码进行自动呼叫外,这一切都完美无缺。而是为每个用户分配特定的内容。因此,我现在修改登录功能以存储相关的电话号码,并且需要修改上述代码以在拨打电话时读取此变量。如果localStorage被删除,那么它不是一个主要问题,因为如果需要我们总是可以回到通用数字上,但是我找不到在Phonegap之外读取这个变量的方法...

由于可以使用getApplicationContext()来启动Phonegap活动,按照同一例程中的另一段代码,我想知道我是否只需要颠倒这两个的顺序阻止并以某种方式从emergencyIntent获取变量?还是有更优雅的解决方案?

一如既往,我们非常感谢任何建议。

感谢。

1 个答案:

答案 0 :(得分:0)

我最后只是在做window.location.href ='tel:'+ localStorage.getItem('emergencyPhone');从已启动活动的JS内部。不理想,但它有效。

我还发现https://github.com/anemitoff/PhoneGap-PhoneDialer会增加自动化实际拨号的能力,就像我原来的callIntent方法一样,但我认为这可能会触发太多意外调用,因此选择了集成。也许对其他人有用。