我正在使用urbanairship来显示通知.我已将我的Android SDK更新为最新更新,它开始显示与urbanairship提供程序相关的错误,并且它与旧版本一起工作正常.
05-22 17:54:30.476: E/AndroidRuntime(575): FATAL EXCEPTION: main
05-22 17:54:30.476: E/AndroidRuntime(575): java.lang.RuntimeException: Unable to get provider com.urbanairship.UrbanAirshipProvider: java.lang.ClassNotFoundException: com.urbanairship.UrbanAirshipProvider
05-22 17:54:30.476: E/AndroidRuntime(575): at android.app.ActivityThread.installProvider(ActivityThread.java:4289)
05-22 17:54:30.476: E/AndroidRuntime(575): at android.app.ActivityThread.installContentProviders(ActivityThread.java:4041)
05-22 17:54:30.476: E/AndroidRuntime(575): at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3995)
05-22 17:54:30.476: E/AndroidRuntime(575): at android.app.ActivityThread.access$1300(ActivityThread.java:127)
05-22 17:54:30.476: E/AndroidRuntime(575): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1217)
05-22 17:54:30.476: E/AndroidRuntime(575): at android.os.Handler.dispatchMessage(Handler.java:99)
05-22 17:54:30.476: E/AndroidRuntime(575): at android.app.ActivityThread.main(ActivityThread.java:4508)
05-22 17:54:30.476: E/AndroidRuntime(575): at java.lang.reflect.Method.invokeNative(Native Method)
05-22 17:54:30.476: E/AndroidRuntime(575): at java.lang.reflect.Method.invoke(Method.java:511)
05-22 17:54:30.476: E/AndroidRuntime(575): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:809)
05-22 17:54:30.476: E/AndroidRuntime(575): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576)
05-22 17:54:30.476: E/AndroidRuntime(575): at dalvik.system.NativeStart.main(Native …
Run Code Online (Sandbox Code Playgroud) 使用Xcode 5.0升级到UrbanAirship 3.0.0,调用此代码时收到错误:
[UAirship takeOff:config];
Run Code Online (Sandbox Code Playgroud)
错误是
+[NSJSONSerialization stringWithObject:]: unrecognized selector sent to class 0x3b2ca9fc
2013-09-19 15:02:31.981 [178:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSJSONSerialization stringWithObject:]: unrecognized selector sent to class 0x3b2ca9fc'
Run Code Online (Sandbox Code Playgroud)
当将"inProduction"键设置为"YES"时似乎没有出现这种情况AirshipConfig.plist
,这有意义,因为调用takeOff:填充UAirShip的实例.这似乎是由于类别NSJSONSerialization+UAAdditions
.
对此有何帮助?谢谢
基本上,我有一个没有问题的IOS应用程序.
按照http://docs.urbanairship.com/build/ios.html#ios-push-getting-started上的说明操作,我到达了" 注册您的设备 "部分,要求我编译.
在尝试在xCode 5中构建代码后,我收到以下错误"@implementation UAPushSettingsAddTagViewController @synthesize of'fulff'enity'仅允许在ARC或GC模式下使用".
注意:ARC模式未使用.
在整合Urban Airship后,我打电话
let appDelegate = UIApplication.sharedApplication().delegate as? AppDelegate
Run Code Online (Sandbox Code Playgroud)
我总是没事.当我试图获得UIApplication.sharedApplication().委托类时,它告诉我,它现在是UAAppDelegateProxy.
但
let appDelegate = UIApplication.sharedApplication().delegate as? UAAppDelegateProxy
Run Code Online (Sandbox Code Playgroud)
也返回零.
我如何获得appDelegate?
编辑
我想,只有当UAConfig
参数automaticSetupEnabled
设置为true 时才会发生这种情况.什么时候automaticSetupEnabled
是假的,我像往常一样得到appDelegate,但我失去了城市飞艇自动配置的优势.
我已将Urban Airship SDK集成到Android 4.2(Jelly Bean)设备上的应用程序中.我收到了一般的推送通知.没关系.但我希望通过带有"保存"标签的按钮获得交互式推送通知.
我的依赖来自build.gradle
:
dependencies {
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.google.android.gms:play-services:+'
compile project (':urbanairship-lib-6.1.1')
compile 'com.android.support:support-v4:22.2.0'
// Recommended for in-app messaging
compile 'com.android.support:cardview-v7:22.2.0'
// Recommended for location services
compile 'com.google.android.gms:play-services-location:7.5.0'
// Required for Android (GCM) push notifications
compile 'com.google.android.gms:play-services-gcm:7.5.0'
compile files('libs/commons-io-2.4.jar')
compile files('libs/FlurryAnalytics-4.1.0.jar')
compile files('libs/nineoldandroids-2.4.0.jar')
}
Run Code Online (Sandbox Code Playgroud)
根据官方文档,我onCreate()
在MyApplication
类中的方法中添加了以下代码:
@Override
public void onCreate() {
AirshipConfigOptions options = new AirshipConfigOptions();
options.developmentAppKey = "sdgsdgsdhsdh";
options.developmentAppSecret = "sdhsdhsdhsdhsh";
options.productionAppKey = "Your Production App Key"; …
Run Code Online (Sandbox Code Playgroud) 使用Rails 3网络应用程序通过Urban AirShip发送推送通知的最佳方式是什么?
来自Urban Airship的文件:
到/ api/push/broadcast /的HTTP POST将给定通知发送给应用程序的所有已注册设备令牌.有效负载采用JSON,内容类型为application/json,具有以下结构:
{
"aps": {
"badge": 15,
"alert": "Hello from Urban Airship!",
"sound": "cat.caf"
},
"exclude_tokens": [
"device token you want to skip",
"another device token you want to skip"
]
}
Run Code Online (Sandbox Code Playgroud)
我真的不知道从哪里开始!
我希望将使用推送通知的应用程序的所有权从一个帐户A转移到帐户B,当我转移捆绑ID时,会保留但是种子ID会发生变化.
我使用城市飞艇来处理所有推送通知(效果非常好)
传输时会保留bundle id(com.mydomain.myapp).种子是(捆绑ID在帐户之间更改之前的'XXYYZZ'.
这似乎不在城市飞艇帐户详细信息的捆绑ID中 - 只是com.mydomain.myapp位.
推送通知仍然正常.
我的问题(感谢你阅读这篇文章)是我必须更新城市飞艇的apns证书 - 这必须通过新帐户B的个人资料更新 - 这有不同的种子ID,这将打破应用程序之间的连接当前用户设备和新帐户推送apns?
没有前缀的bundle id将是相同的,seed id前缀是否与apns ssl证书有关?
我希望这是有道理的.
提前谢谢了
是否有可能让XCode根据构建目标配置iOS的AirshipConfig.plist?Urban Airship目前仅支持2种配置,在AirshipConfig.plist中设置,但我希望有3个或更多.有没有人有经验,如果可能根据目标切换配置文件?UA是否要求文件具有以上名称?
这是一个缺点,UA不提供超过2个配置的任何选项.UA支持表示目前不可能,但我认为可能会动态切换文件.
关心金
我正在为iOS和Android创建一个PhoneGap应用程序.我已经让Android工作得很好,但是在iOS中从开发转换到生产时遇到了麻烦.没有为具有生产adHoc构建的设备注册设备令牌.我已经筋疲力尽了我能想到的每一件事.这是我到目前为止所做的:
当我第一次在设备上运行应用程序时,所有内容都完全重做.这是我在控制台中得到的:
Mon Sep 17 12:48:00 unknown XXXXXXXXX[5039] Warning: Multi-tasking - Device: NO, App: YES
Mon Sep 17 12:48:05 unknown XXXXXXXXX[5039] Warning: Reachability Flag Status: -R -----l- networkStatusForFlags
Mon Sep 17 12:48:06 unknown XXXXXXXXX[5039] Warning: [M] = -[UAPush updateRegistration] [Line 583] Checking registration state
Mon Sep 17 12:48:06 unknown XXXXXXXXX[5039] Warning: [M] = -[UAUser listenForDeviceTokenReg] [Line 969] ListenForDeviceTokenReg
Mon Sep 17 12:48:06 unknown XXXXXXXXX[5039] Warning: [M] = -[UAUser retrieveRequestSucceeded:] [Line 911] …
Run Code Online (Sandbox Code Playgroud) apple-push-notifications urbanairship.com ios phonegap-plugins cordova
我确实收到了推送消息,但每当我在通知栏中点击它们时,这个logcat就出现了,通知消失了......
这是我的logcat输出:
05-31 16:49:47.165: D/Test - UALib(20523): No intent receiver set, not sending ACTION_NOTIFICATION_OPENED
Run Code Online (Sandbox Code Playgroud)
这是我的明显结构:
<category android:name="com.test.push" />
</intent-filter>
</receiver>
<service
android:name="com.urbanairship.push.PushService"
android:label="Push Notification Service" />
<service
android:name="com.urbanairship.push.PushWorkerService"
android:label="Push Notification Worker Service" />
<service
android:name="com.urbanairship.analytics.EventService"
android:label="Event Service" />
<provider
android:name="com.urbanairship.UrbanAirshipProvider"
android:authorities="com.test.push.urbanairship.provider"
android:exported="false"
android:multiprocess="true" />
<activity
android:name="com.test.push.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.test.push.SettingsActivity"
android:label="@string/title_activity_settings" />
<activity
android:name="com.test.push.ChooseClass"
android:label="@string/app_name" />
</application>
Run Code Online (Sandbox Code Playgroud)
这是我的MyApplication.java:
public class MyApplication extends Application {
@Override
public void onCreate() {
AirshipConfigOptions options …
Run Code Online (Sandbox Code Playgroud) urbanairship.com ×10
ios ×7
android ×3
appdelegate ×1
cordova ×1
ios7 ×1
iphone ×1
objective-c ×1
plist ×1
push ×1
swift ×1
xcode ×1