我有一个基本的WebView
加载和外部网页。
点击时,外部链接不会加载/执行任何操作(预计在Web视图中 )。内部链接按预期加载
plist
中的应用传输安全设置设置为“允许任意加载”
我看过WebPolicyDelegate:https://developer.apple.com/reference/webkit/webpolicydelegate?language=objc正如我想的那样,我可能需要设置一个策略,但这似乎只适用于在单独的浏览器中加载extrnal链接
我没有勾选/允许/错过哪个方框?
答案 0 :(得分:1)
您需要定义这两个方法(一个来自WebPolicyDelegate,另一个来自WebUIDelegate)来打开每个域的每个页面,包括应该在不同的选项卡或窗口中打开的那些(虽然它将在同一个WebView中打开)。
就我而言,我已经创建了一个WebView子类(VMWebView)来处理这个问题:
@implementation VMWebView
-(void)awakeFromNib
{
self.UIDelegate = self;
self.policyDelegate = self;
}
-(void)webView:(WebView *)webView decidePolicyForNavigationAction:(NSDictionary *)actionInformation request:(NSURLRequest *)request
frame:(WebFrame *)frame decisionListener:(id<WebPolicyDecisionListener>)listener
{
// Opens everything
[listener use];
}
-(WebView *)webView:(WebView *)sender createWebViewWithRequest:(NSURLRequest *)request
{
// Opens new tab/window pages
return sender;
}
@end
检查这是否适合你。