gpt4 book ai didi

ios - 如何将 deviceToken 字符串传递给 'webViewDidFinishLoad' ?

转载 作者:行者123 更新时间:2023-11-29 03:07:44 25 4
gpt4 key购买 nike

如何在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com