我将从应用程序中打开的网址直接发送到safari浏览器。由于网站尚未移动,我想注入javascript或某种放大效果。
以下是我到目前为止的情况:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
此调用获取url并将其呈现在默认浏览器Safari中。我需要在此调用中添加javascript。我们不希望网址在应用程序中托管,这就是为什么我没有'使用uiwebview。
答案 0 :(得分:0)
使用网页浏览时,无需在应用中托管网址。 因此,您可以在应用内网页视图中加载普通网页,然后使用scalesPageToFit或类似内容扩展内容。
如果您想使用iPhone浏览器,您需要使用JS,您可以在网址引用的网页中加载,也可以查看浏览器代理以确定它是iphone并相应地设置视图
由于应用程序是相互沙盒的,因此无法通过iPhone浏览器传递更多内容。正如我所看到的,openURL甚至没有指定使用哪种浏览器。
不需要在应用程序中托管Web内容,您可以加载外部URL。 (或者您可以只创建一个本地页面和iframe来显示您想要显示的网络资源)
这是您添加网页视图并加载外部网址的方式。
UIWebView *tempWebview = [[UIWebView alloc]initWithFrame:theFrame];
NSString *urlAddress = @"http://www.apple.com";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
self.myWebView = tempWebview;
[tempWebview loadRequest:requestObj];
[tempWebview release];
myWebView.delegate=self;
如果您需要从Objective-C端注入一些javascript,您可以使用:
- (NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script;
Here是关于从objective-c接口webview的更多信息。
您还可以添加额外的后端或在应用层中添加代理
您可以控制添加更多javascript逻辑来设置浏览器等,例如使用iframe等。
您可以将css转换应用于iframe:
iframe {
-moz-transform: scale(0.25, 0.25);
-webkit-transform: scale(0.25, 0.25);
-o-transform: scale(0.25, 0.25);
-ms-transform: scale(0.25, 0.25);
transform: scale(0.25, 0.25);
-moz-transform-origin: top left;
-webkit-transform-origin: top left;
-o-transform-origin: top left;
-ms-transform-origin: top left;
transform-origin: top left;
border: solid #ccc 10px;
}