当前位置:  开发笔记 > 编程语言 > 正文

从Angularjs App中的iOS Webview调用Javascript函数

如何解决《从AngularjsApp中的iOSWebview调用Javascript函数》经验,为你挑选了1个好方法。

我的问题是当我尝试从UIWebView中调用我的AngularJS应用程序中存在的javascript函数时,该函数无法识别.当我在典型的html结构中调用该函数时,该函数被识别为预期的.示例如下:

Objective-C的:

- (void)viewDidLoad
{
    [super viewDidLoad];

    // CODE GOES HERE
    _webView.delegate = self;

    // LOAD THE CHABACORP HOMEPAGE WITH INITIAL UIWEBVIEW
    NSString *fullURL = @"http://testing.com";
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [self.webView loadRequest:requestObj];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView{

    [_webView stringByEvaluatingJavaScriptFromString:@"testing()"];

}

ANGULARJS控制器:

'use strict';

angular.module('testing.controllers', [])

.controller('Testing', function($scope) {

    function testing() {
        alert('testing');
    }

});

基本HTML(与当前目标-C一起使用):






    



 

Anders Ekdah.. 6

这是因为您的testing功能不是全局可用的.它仅在您的Testing控制器功能中可用.要使其全局可用,您需要将控制器修改为如下所示:

'use strict';

angular.module('testing.controllers', [])

.controller('Testing', function($scope) {

    window.testing = function() {
        alert('testing');
    }

});

不能说我建议你这样做,但很难判断,因为我们不知道你为什么要这样做.



1> Anders Ekdah..:

这是因为您的testing功能不是全局可用的.它仅在您的Testing控制器功能中可用.要使其全局可用,您需要将控制器修改为如下所示:

'use strict';

angular.module('testing.controllers', [])

.controller('Testing', function($scope) {

    window.testing = function() {
        alert('testing');
    }

});

不能说我建议你这样做,但很难判断,因为我们不知道你为什么要这样做.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有