这个问题很像Share data between two or more iPhone applications,除了:
(这基本上排除了使用共享表和自定义网址传递数据,如上文所述)
我在第一个应用中使用boolean firstCallDone = false;
boolean secondCallDone = false;
DataSnapshot firstDataSnapshot = null;
DataSnapshot secondDataSnapshot = null;
onCreate() {
firstRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
firstCallDone = true;
firstDataSnapshot = dataSnapshot;
if (firsCallDone && secondCallDone)
doSomething();
}
...
}
secondRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
secondCallDone = true;
secondDataSnapshot = dataSnapshot;
if (firsCallDone && secondCallDone)
doSomething();
}
...
}
}
doSomething() {
// do something with firstDataSnapshot and secondDataSnapshot
...
}
和AVAudioPlayer
播放声音,如果这对我们有帮助的话。
答案 0 :(得分:2)
您可以通过DataContext
分享实际的<local:LoginForm Validator="{Binding DataContext, ElementName=WindowName}"}>
:
NSData
并从同一组中的其他应用中检索,如下所示:
NSUserDefaults
似乎通过用户默认值传递数据的唯一限制是设备存储容量,并且由于if let userDefaults = NSUserDefaults(suiteName: <group>) {
userDefaults.setObject(obj, forKey: key)
}
接受if let userDefaults = NSUserDefaults(suiteName: <group>) {
if let obj = userDefaults.objectForKey(key) {
// magic
}
}
作为存储格式,因此它成为共享花絮信息的主要候选者。
答案 1 :(得分:0)
如果这两个应用都是你的,你可以在第二个应用程序中实现自定义URL方案,然后从第一个应用程序询问它是否知道如何打开具有该方案的URL。如果答案是肯定的,则安装该应用程序。该函数称为canOpenURL
。它是UIApplication
的实例方法。
我依稀记得在iOS 9及更高版本中,Apple添加了一项限制,您必须在info.plist中注册您要询问的网址,但我不记得详细信息。这不会阻止这个计划的运作,但这是你必须采取的额外步骤。