从UIWebview读取Javascript对象

从UIWebview读取Javascript对象,javascript,objective-c,uiwebview,Javascript,Objective C,Uiwebview,我有一个网页,其中包含javascript对象中的数据。我希望能够从UIWebView访问此数据,以便在本机ObjectiveC代码中使用 我试过很多方法 在委托方法-(void)webViewDidFinishLoad:(UIWebView*)webView 我尝试使用 [myWebView stringByEvaluatingJavaScriptFromString:@”“ 但似乎没有一种简单的方法可以提取结构化数据 我想的另一个选择是 只需将HTML作为字符串加载并解析它,但这似乎是一种非

我有一个网页,其中包含javascript对象中的数据。我希望能够从UIWebView访问此数据,以便在本机ObjectiveC代码中使用

我试过很多方法

  • 在委托方法
    -(void)webViewDidFinishLoad:(UIWebView*)webView
    我尝试使用
  • [myWebView stringByEvaluatingJavaScriptFromString:@”“

    但似乎没有一种简单的方法可以提取结构化数据

  • 我想的另一个选择是
  • 只需将HTML作为字符串加载并解析它,但这似乎是一种非常糟糕的方法

    我的HTML的一个例子是

    <html>
        <head>
            <script type="text/javascript">
            $(function() {
              myData[0] = {
                    name: 'data title',
                    data: [
                    [1281880800000, 4],[1282485600000, 12],[1283090400000, 15],[1283695200000, 107],[1284300000000, 11],[1284904800000, 14],[1285509600000, 3],[1286110800000, 10],[1286715600000, 12],[1287320400000, 2],[1287925200000, 304],[1288530000000, 18],[1289134800000, 22],[1289739600000, 5],[1290344400000, 6],[1290949200000, 14],[1291554000000, 6],[1292158800000, 10],[1292763600000, 9],[1293368400000, 0],[1293973200000, 4],[1294578000000, 2],[1295182800000, 17],[1295787600000, 6],[1296392400000, 4],[1296997200000, 7],[1297602000000, 50],[1298206800000, 2],[1298811600000, 3],[1299416400000, 3],[1300021200000, 301],[1300626000000, 1],[1301230800000, 72],[1301839200000, 6],[1302444000000, 5],[1303048800000, 2],[1303653600000, 5],[1304258400000, 7],[1304863200000, 8],[1305468000000, 34],[1306072800000, 12],[1306677600000, 6],[1307282400000, 2],[1307887200000, 2],[1308492000000, 7],[1309096800000, 30],[1309701600000, 63],[1310306400000, 3],[1310911200000, 9],[1311516000000, 3],[1312120800000, 4]             ],
                    color: '#ff1430'
                };
    
                myData[1] = {
                    name: 'Other Data',
                    data: [
                    [1281880800000, 29],[1282485600000, 402],[1283090400000, 0],[1283695200000, 1],[1284300000000, 1],[1284904800000, 0],[1285509600000, 0],[1286110800000, 0],[1286715600000, 1],[1287320400000, 10],[1287925200000, 2],[1288530000000, 0],[1289134800000, 10],[1289739600000, 1],[1290344400000, 3],[1290949200000, 26],[1291554000000, 2],[1292158800000, 5],[1292763600000, 3],[1293368400000, 1],[1293973200000, 3],[1294578000000, 26],[1295182800000, 2],[1295787600000, 0],[1296392400000, 5],[1296997200000, 47],[1297602000000, 36],[1298206800000, 12],[1298811600000, 21],[1299416400000, 0],[1300021200000, 0],[1300626000000, 16],[1301230800000, 0],[1301839200000, 3],[1302444000000, 4],[1303048800000, 2],[1303653600000, 0],[1304258400000, 1],[1304863200000, 5],[1305468000000, 2],[1306072800000, 1],[1306677600000, 4],[1307282400000, 1],[1307887200000, 1],[1308492000000, 51],[1309096800000, 77],[1309701600000, 3],[1310306400000, 2],[1310911200000, 1],[1311516000000, 10],[1312120800000, 4]             ],
                    color: '#007396'
                };
            </script>
    </head>
        <body>    
        </body>
    </html>
    

    我曾经使用过将JSON转换为NSDictionary,但我想知道如何将其结合起来,从HTML中访问这个javascript对象。我认为这是一篇重复的文章。但还是让我澄清你的疑问-

    [webView stringByEvaluatingJavaScriptFromString:@“obj.func();”

    编辑:选中此项-


    希望这有助于……

    我相信这是一个单独的问题,但可能我没有抓住重点。。。我对描述进行了编辑,专门描述了我想做的事情。您能否提供一个示例javascript for stringByEvaluatingJavaScriptFromString,以在上面的示例HTML中提取myData对象。该示例从objective-C调用java fund,但这不会将javascript代码中的数据获取到objective-C,至少除了字符串之外没有其他内容
    NSInteger x = [[[[[myDataArray objectAtIndex:0] objectForKey:@"data"] objectAtIndex:0] objectAtIndex:0]