admin管理员组文章数量:1426183
My problem is that when I try to call a javascript function that exists in my AngularJS app from within a UIWebView that function is not recognized. When I call the function in a typical html structure the function is recognized as expected. Example provided below:
OBJECTIVE-C:
- (void)viewDidLoad
{
[super viewDidLoad];
// CODE GOES HERE
_webView.delegate = self;
// LOAD THE CHABACORP HOMEPAGE WITH INITIAL UIWEBVIEW
NSString *fullURL = @"";
NSURL *url = [NSURL URLWithString:fullURL];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:requestObj];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView{
[_webView stringByEvaluatingJavaScriptFromString:@"testing()"];
}
ANGULARJS CONTROLLER:
'use strict';
angular.module('testing.controllers', [])
.controller('Testing', function($scope) {
function testing() {
alert('testing');
}
});
BASIC HTML (WORKS WITH CURRENT OBJECTIVE-C):
<!DOCTYPE HTML>
<html>
<body>
<SCRIPT>
function testing() {
alert('testing');
}
</SCRIPT>
</body>
</html>
My problem is that when I try to call a javascript function that exists in my AngularJS app from within a UIWebView that function is not recognized. When I call the function in a typical html structure the function is recognized as expected. Example provided below:
OBJECTIVE-C:
- (void)viewDidLoad
{
[super viewDidLoad];
// CODE GOES HERE
_webView.delegate = self;
// LOAD THE CHABACORP HOMEPAGE WITH INITIAL UIWEBVIEW
NSString *fullURL = @"http://testing.";
NSURL *url = [NSURL URLWithString:fullURL];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[self.webView loadRequest:requestObj];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView{
[_webView stringByEvaluatingJavaScriptFromString:@"testing()"];
}
ANGULARJS CONTROLLER:
'use strict';
angular.module('testing.controllers', [])
.controller('Testing', function($scope) {
function testing() {
alert('testing');
}
});
BASIC HTML (WORKS WITH CURRENT OBJECTIVE-C):
<!DOCTYPE HTML>
<html>
<body>
<SCRIPT>
function testing() {
alert('testing');
}
</SCRIPT>
</body>
</html>
Share
Improve this question
asked Mar 14, 2014 at 13:56
rjm226rjm226
1,2031 gold badge11 silver badges21 bronze badges
1
- 1 You need to read up on and understand scope in javascript – JoseM Commented Mar 14, 2014 at 14:21
1 Answer
Reset to default 6It's because your testing
function isn't globally available. It's only available inside your Testing
controller function. To make it globally available, you need to modify the controller to be something like this:
'use strict';
angular.module('testing.controllers', [])
.controller('Testing', function($scope) {
window.testing = function() {
alert('testing');
}
});
Can't say that I remend you to do this though, but it's hard to judge since we don't know more about why you want to do this.
本文标签: objective cCall Javascript Function From iOS Webview in Angularjs AppStack Overflow
版权声明:本文标题:objective c - Call Javascript Function From iOS Webview in Angularjs App - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745419711a2657847.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论