【问题标题】:Possible to Embed html/css/js into ios native app可以将 html/css/js 嵌入到 ios 本机应用程序中
【发布时间】:2015-01-26 17:48:56
【问题描述】:

我有这个iOS 应用程序,用objective-c 编写,其中包含UIWebview,主要故事发生在UIWebview。我不想从服务器加载每个页面,因为会有一些延迟,我想知道我是否可以在本地代码中嵌入以html/js 编写的界面/页面?所以应用程序的UIWebview 不必每次都从服务器远程加载页面,而是在本地加载?基本上这仍然是一个原生应用程序,所以我可以无缝地使用push notification 等,不喜欢Phonegap 所以......

【问题讨论】:

    标签: ios html webview


    【解决方案1】:

    可以在UIWebview 上执行javascript,然后您可以使用该javascript 插入您想要的任何内容。方法是这样的:

    [webview stringByEvaluatingJavaScriptFromString:@"alert(\"Your inserted javascript here!\")"];
    

    【讨论】:

    • 可以改用jQuery吗?另外,如果我要添加一大堆 js 库/插件怎么办?
    • 有可能,是的,但是您必须使用相同的方法传递整个 JQuery 脚本。编写一个获取文件、读取文件并将其插入 webview 的函数可能更容易,这样您就可以将 .js 文件放在包中的某个位置并更轻松地加载它,而不是传入大量文件源中的字符串。
    • 我明白你的意思。谢谢你的提示!在页面完全加载之前,是否可以禁止 webview 显示任何内容?这样我就可以在它上面放一个activityIndi​​cator,这会让我的生活更轻松......
    • 当然,如果你设置了UIWebView的delegate,你就可以收到这两个调用webViewDidStartLoad:和webViewDidFinishLoad:
    【解决方案2】:

    在您的 UIWebView 委托中,为

    提供一个实现

    webView:shouldStartLoadWithRequest:navigationType:

    -(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest

    navigationType:(UIWebViewNavigationType)inType

    {

    if ( [[[inRequest URL] scheme] isEqualToString:@"callback"] ) {
    
        // Do something interesting...
    
        return NO;
    }
    
    return YES;
    

    }

    这里:Javascript in UIWebView callback to C/Objective-C

    【讨论】:

      猜你喜欢
      • 2019-07-14
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 1970-01-01
      相关资源
      最近更新 更多