我正在使用js函数调用stringByEvaluatingJavaScriptFromString
调用[self.webview stringByEvaluatingJavaScriptFromString:@"someMethod()"
。
在iphone上它返回一个空字符串但是当我使用"Develop -> myphone -> index.html"
在safari中调试时,同一个调用会按预期返回正确的结果。
我还应该指出,使用该方法的JS文件与整个“网站”一样位于设备本地
我该怎么检查?
答案 0 :(得分:0)
首先,您需要确保webView
已正确加载,因此在通知您已使用UIWebViewDelegate
方法完成后,请执行任何代码。然后,您必须确保您在该JS方法的正确URL处工作(您可以被重定向到移动站点(在URL中查找.m))。如果你是,可能没有帮助,所以你必须在移动网站上测试你在iPhone上使用的任何JS,在你的计算机上打开相同的URL并环顾四周。运行此测试:
#import "MyWebViewController.h"
@interface MyWebViewController() <UIWebViewDelegate>
// If you have a storyboard
@property (nonatomic, weak) IBOutlet UIWebView *webView;
// If you don't have a storyboard
// @property (nonatomic, strong) UIWebView *webView;
@end
@implementation MyWebViewController
- (void)viewDidLoad
{
// If you don't have a storyboard
// self.webView = [[UIWebView alloc] initWithFrame:self.view.frame];
// [self.view addSubview:self.webView];
self.webView.delegate = self;
}
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
NSLog(@"The URL of the site we are on is: %@", webView.request.URL.absoluteString);
NSLog(@"Now, I'll evaluate the JS: %@", [webView stringByEvaluatingJavaScriptFromString:@"someMethod()"]);
}
@end