使用 javascript 从 uiwebview 的网页获取值

get Values from uiwebview's webpage using javascript

本文关键字:网页 获取 uiwebview javascript 使用      更新时间:2023-09-26

>我在 Objective - C 中使用 Java 脚本。

以下是我的代码:

NSString *javascript = @"testfunction = function(){ jQuery.getScript('"https://www.myserver.com/myscript.js'").done(function(script,textStatus){$testvalue = 10; return $testvalue; }).fail(function(jqXHR,settings,exception){'n alert(exception);});}";
[webview stringByEvaluatingJavaScriptFromString:javascript];
NSString *value = [webview stringByEvaluatingJavaScriptFromString:@"testfunction();"];
NSLog(@"Value of Value : %@",value);

现在的问题是:

我想在我的值变量中值,如何获得它?

将委托添加到您的 Web 视图

_webView.delegate =self;

使用此代码

NSString *fName = [[NSString alloc] initWithFormat: @"demo()"];
NSString *result = [webView stringByEvaluatingJavaScriptFromString:fName];

下载代码示例

请按照以下步骤操作:

创建 JS 文件演示.js并添加代码

var hello = function(str){
   return str;
};

添加 UIWebView => 将 JavaScript 嵌入到虚拟 html 文件中并将其加载到 UIWebView 中

[self.webView loadHTMLString:@"<script src='"demo.js'"></script>"
              baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]]];

这是进行JS调用的代码

NString *str=@"hi JavaScript";
NSString *function = [[NSString alloc] initWithFormat: @"hello(%@)", str];
NSString *result = [webView stringByEvaluatingJavaScriptFromString:function];

现在,有一个重要的安全提示可以使它真正工作:UIWebView实际上必须加载一个视图。它不必可见,但为了使 WebKit 引擎执行 JS,它必须位于视图上。

这可能有助于您:)

您可以使用

UIWebView的委托方法webView:shouldStartLoadWithRequest:navigationType:来拦截URL请求。当你需要从JS函数返回一些数据时,做一个假请求,拦截它,处理,并返回NO

有关详细信息,请阅读此处。