作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何在 Objective C 中将数据从一个类发送到另一个类?或者我如何将字符串存储到全局变量中?我主要是一名 JavaScript 开发人员,但在这方面遇到了困难。我记不起足够多的 Obj C 来编写纸板箱的代码。
我向我的 PhoneGap 应用程序添加了推送通知,但我无法将 token 字符串传递到 Web View 。我正在使用 Meteor,所以我在 WebView 中调用 Session.set('token', 'abc');
来存储它。当我尝试从 didRegisterForRemoteNotificationsWithDeviceToken
注入(inject)它时,它会在 html 页面完成加载之前触发。非常感谢任何帮助。
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
NSLog(@"My token is: %@", deviceToken);
// would like to do:
globalToken = deviceToken;
}
.
- (void)webViewDidFinishLoad:(UIWebView*)theWebView
{
// Black base color for background matches the native apps
theWebView.backgroundColor = [UIColor blackColor];
// inject token
NSString* jsString = [NSString stringWithFormat:@"setTimeout(function(){ Session.set('push:ios', '%@'); }, 7000);", globalToken];
[theWebView stringByEvaluatingJavaScriptFromString:jsString];
return [super webViewDidFinishLoad:theWebView];
最佳答案
让我们按如下方式分配您的 globalToken
在AppDelegate.h
@property (nonatomic, retain) NSString * globalToken;
在AppDelegate.m
@synthesize globalToken = _globalToken;
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
NSLog(@"My token is: %@", deviceToken);
// would like to do:
_globalToken = deviceToken;
}
在您的webViewDidFinishLoad
#import "AppDelegate.h"
-(void)webViewDidFinishLoad:(UIWebView*)theWebView
{
AppDelegate * appDel = (AppDelegate *) [[UIApplication sharedApplication] delegate];
NSLog(@"appDel.globalToken :%@", appDel.globalToken);
}
谢谢!
关于ios - 如何将 deviceToken 字符串传递给 'webViewDidFinishLoad' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22575688/
我是一名优秀的程序员,十分优秀!