【问题标题】:How do I load a HTML Object in UIWebView?如何在 UIWebView 中加载 HTML 对象?
【发布时间】:2013-03-09 01:25:58
【问题描述】:

我是 iPhone 开发的新手,我正在尝试将 HTML 对象加载到 UIWebView 中。

问题是,当我将 HTML 数据转换为字符串时,应用程序崩溃并显示 EXC_BAD_ACCESS。该对象是一个brightcove视频,我直接从brightcove网站复制了嵌入代码,所以我不明白为什么它不起作用。非常感谢任何帮助。

代码:

NSString *brightstring = [NSString stringWithFormat:@"<html><body><object id=flashObj width=540 height=400 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000 codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0><param name=movie value=http://c.brightcove.com/services/viewer/federated_f9?isVid=1 /><param name=bgcolor value=#FFFFFF /><param name=flashVars value=videoId=%@&playerID=659636031001&playerKey=AQ~~,AAAAC59qSJk~,vyxcsD3OtBM6WfpHEsDft5laXH9ASJhF&domain=embed&dynamicStreaming=true /><param name=base value=http://admin.brightcove.com /><param name=seamlesstabbing value=false /><param name=allowFullScreen value=true /><param name=swLiveConnect value=true /><param name=allowScriptAccess value=always /><embed src=http://c.brightcove.com/services/viewer/federated_f9?isVid=1 bgcolor=#FFFFFF flashVars=videoId=%@&playerID=659636031001&playerKey=AQ~~,AAAAC59qSJk~,vyxcsD3OtBM6WfpHEsDft5laXH9ASJhF&domain=embed&dynamicStreaming=true base=http://admin.brightcove.com name=flashObj width=540 height=400 seamlesstabbing=false type=application/x-shockwave-flash allowFullScreen=true swLiveConnect=true allowScriptAccess=always pluginspage=http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash></embed></object></body></html>", clipid]; //<--Crashes Here

NSString* html = [NSString stringWithFormat:brightstring, 540, 400];  

[videoScreen loadHTMLString:html baseURL:nil];  

【问题讨论】:

    标签: iphone html string url uiwebview


    【解决方案1】:

    很简单:

    NSString *brightstring = [NSString stringWithFormat:@"...videoId=%@&...videoId=%@&...", clipid]; //<--Crashes Here
    

    您的格式字符串中有两次%@,但您只传入一个参数。

    我建议从文件中加载 HTML 并使用 -stringByReplacingOccurrencesOfString:withString: 填写视频 ID(使用像 ${VIDEO_ID} 这样的占位符)。

    【讨论】:

    • 感谢您的回复。我刚刚将第二个参数添加到我的亮字符串的末尾,现在它不会崩溃,但它也不会加载。有什么想法吗?
    【解决方案2】:

    看起来该视频是 Flash 视频,据我所知(我可能错了),但 iOS 不支持 Flash。尝试使用其他格式,如 mp4、mpv、3gp 等。出于测试目的,我将首先托管 .html 文件(如果您有托管公司,或者使用 apache 在本地运行它),然后从手机的网络浏览器访问它.如果它在那里不起作用,那么肯定它也不会以这种方式起作用。

    【讨论】:

    • 我认为您可能是正确的。我刚刚加载了主要的 brightcove 页面,而不仅仅是视频播放器对象。网页加载良好并显示了视频播放器对象。但是,当我单击视频时,它不会在 webview 中播放,而是在 ios videoplayer 中播放,我相信它会播放 mp4。
    猜你喜欢
    • 1970-01-01
    • 2012-08-09
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多