相关疑难解决方法(0)

Android - 使用外部浏览器在WebView中打开目标_blank链接

我建立一个WebView显示网站.该网站包含没有target="_blank"属性的链接和一些带有它的链接.

我需要打开target外部标准设备浏览器中定义的链接和WebView中没有它的链接.

我正在使用一个WebViewClient,我尝试了这个功能,但我的所有链接仍在以下内容中打开WebView:

备选方案1:

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {

    return super.shouldOverrideUrlLoading(view, url);        
}
Run Code Online (Sandbox Code Playgroud)

备选方案2:

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {

    view.loadUrl(url);
    return true;        
}
Run Code Online (Sandbox Code Playgroud)

有人知道如何在外部打开空白链接吗?

谢谢!

PS:为了避免误解:我不能使用这种方法,因为我知道链接的唯一方法应该是外部打开target属性.

android android-webview webviewclient

24
推荐指数
2
解决办法
3万
查看次数

如果“target=_blank”,Xamarin Android WebView 不会触发导航

我在 xamarin 中使用 webview,我遵循了许多教程来处理导航,并且一切正常。我的问题是:当锚标记具有 target="_blank" 时,导航事件永远不会被触发。

我看到周围有人给出了一个 javascript 解决方案,它删除了 target=_blank 并将其附加在 href 链接的末尾。

这真的是正确的方法吗?看有线..

谢谢

这是 xamarin.android 渲染器中的初始化

        protected override void OnElementChanged(ElementChangedEventArgs<WebView> e)
    {
        base.OnElementChanged(e);
        global::Android.Webkit.WebView.SetWebContentsDebuggingEnabled(true);
        if (e.OldElement != null)
        {
            Control.RemoveJavascriptInterface("jsBridge");
            ((HybridWebView)Element).Cleanup();
        }            
        if (e.NewElement != null)
        {
            Control.Settings.JavaScriptEnabled = true;
            Control.Settings.DomStorageEnabled = true;
            Control.Settings.JavaScriptCanOpenWindowsAutomatically = true;
            Control.Settings.SetSupportMultipleWindows(true);
            Control.Settings.AllowFileAccessFromFileURLs = true;
            Control.Settings.AllowUniversalAccessFromFileURLs = true;
            Control.Settings.UserAgentString = Control.Settings.UserAgentString  + " crmvw";                
            Android.Webkit.WebChromeClient xCC = new CustChromeWebViewClient(_context);
            Control.SetWebChromeClient(xCC);
            Control.SetWebViewClient(new CrmWebViewClient(this, $"javascript: {JavascriptFunction}"));     
            Control.AddJavascriptInterface(new JSBridge(this), "jsBridge");     
            Control.LoadUrl(((HybridWebView)Element).Uri);
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我的导航事件,当锚点有 target=_blank 时从未触发 …

android webview xamarin.forms

2
推荐指数
1
解决办法
2695
查看次数