这是我的第一个 iOS 应用程序,所以我可能遗漏了一些非常简单的东西。请善待。我一直在扯头发,我真的需要一些帮助。
应用概述
基本上,这是一个仅加载 UIWebView 的单页应用程序。我有一个连接的外部附件(蓝牙条形码扫描仪),基本上我想要做的是当应用程序接收到扫描时,我想在我的 ViewController 中调用一个方法并相应地更新 UIWebView。
什么在起作用
我能够连接扫描仪,加载第一个视图,该视图加载初始网页,扫描条形码并在我的控制器中调用该方法。
我的问题
我似乎无法弄清楚如何从控制器中的方法更新 UIWebView。它将 url 字符串记录到我的调试器区域,但从未真正更新 webview。我很确定我的 webview 实例有一些委派错误或某些问题。这里一定有一些我缺少的胶水代码。
我的代码 HelloWorldViewController.h
#import <UIKit/UIKit.h>
#import "KScan.h"
@interface HelloWorldViewController : UIViewController <UIWebViewDelegate> {
IBOutlet UIWebView *page;
IBOutlet UILabel *myLabel;
Boolean IsFirstTime;
KScan *kscan;
}
- (void)setFirstTime;
- (void)DisplayConnectionStatus;
- (void)DisplayMessage:(char *)Message;
- (void)newBarcodeScanned:(NSString *)barcode;
- (void)loadBarcodePage:(NSString *)barcode;
@property (nonatomic, retain) KScan *kscan;
@property (nonatomic, retain) UIWebView *page;
@property (nonatomic, retain) UILabel *myLabel;
@end
我的代码 HelloWorldViewController.m
#import "HelloWorldViewController.h"
#import "common.h"
@implementation HelloWorldViewController
@synthesize myLabel;
@synthesize page;
@synthesize kscan;
- (void)setFirstTime
{
IsFirstTime = true;
}
- (void)viewDidLoad
{
self.kscan = [[KScan alloc] init];
[super viewDidLoad];
page.scrollView.bounces = NO;
//page.delegate = self;
[page loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://192.168.0.187:3000"]]];
}
- (void) newBarcodeScanned:(NSString *)barcode
{
NSLog(@"%s[%@]",__FUNCTION__, barcode);
[self loadBarcodePage:barcode];
}
- (void)loadBarcodePage:(NSString *)barcode
{
NSLog(@"%s",__FUNCTION__);
NSString *url = [[NSString alloc] initWithFormat:@"http://www.google.com/%@", barcode];
NSLog(@"%@", url);
[page loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
}
- (void)viewDidUnload
{
[myLabel release];
myLabel = nil;
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
} else {
return YES;
}
}
- (void)dealloc {
[page release];
[kscan release];
[myLabel release];
[super dealloc];
}
@end
基本上,我只是想在扫描条形码时将 google.com 加载到我的页面 webview 中。我的日志语句正在使用正确的 URL 记录,但是这行代码不起作用。
[page loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
我没有收到任何错误,而且我的 xCode 调试技能也不是最好的。
任何帮助将不胜感激!