Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 45

0
votes
answers
29 views
+10

刪除UIWebView中網站標題後的空白

0

你好我打開的網站在UIWebView中有標題。我用下面的代碼去掉那個頭文件。它將刪除標題,但不會將下一個項目移到頂部。它在標題視圖的位置顯示一個空白填充。刪除UIWebView中網站標題後的空白

func webViewDidFinishLoad(_ webView: UIWebView) { 
    webView.scrollView.contentInset = UIEdgeInsets.zero 
    webView.stringByEvaluatingJavaScript(from: "$(document).ready(function() { $('div.header').remove(); })") 
} 
沙发
0
0

我通過向網頁發送另一個javascript代碼來解決它;

webView.stringByEvaluatingJavaScript(from: "document.getElementsByClassName('wrapper')[0].style.paddingTop = '0px';") 
0
votes
answers
48 views
+10

如何在Android WebView中定位類名?

0

我需要加載WebView,並需要修改基於div類的CSS,在我的情況下我需要將目標設置爲innerClass。例如,我有這樣的代碼中的WebView:如何在Android WebView中定位類名?

<div class="myClass"> 
    <div class="innerClass"> 
    Some Text here. 
    </div> 
</div> 

如何設置innerClassdisplay:none

這裏是我的代碼在MainActivity.java

final WebView myWebView = (WebView) findViewById(R.id.webview); 
WebSettings webSettings = myWebView.getSettings(); 
webSettings.setJavaScriptEnabled(true); 
myWebView.loadUrl("https://xxxx.com"); 
+0

爲什麼downvote?是否清楚我的問題? – Nere

沙发
0
1

您可以使用像這樣的javascript代碼:

mWebView.setWebChromeClient(new WebChromeClient()); // for alert 
mWebView.loadUrl("javascript:alert('hello world')"); 

,您可以通過此實現自己的目標:

mWebView.loadUrl("javascript:document.getElementsByClassName('innerClass')[0].style.display = 'none'"); 


這裏是完整的例子:

MainActivity.java

public class MainActivity extends Activity { 

    private WebView mWebView; 
    private boolean isVisible = true; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     mWebView = (WebView) findViewById(R.id.activity_main_webview); 
     mWebView.setWebViewClient(new WebViewClient()); 
     mWebView.setWebChromeClient(new WebChromeClient()); // for alert, anyway. 

     // Enable Javascript 
     WebSettings webSettings = mWebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 

     String htmlString = "<html><div class="myClass">
" + 
       "myClass text here" + 
       " <div class="innerClass">
" + 
       "  Some Text here.
" + 
       " </div>
" + 
       "</div>" + 
       "</html>"; 

     mWebView.loadData(htmlString, "text/html; charset=utf-8", null); 

     mWebView.loadUrl("javascript:alert('hello world')"); 
    } 

    public void toggle(View view) { 
     if (isVisible) { 
      mWebView.loadUrl("javascript:var d = document.getElementsByClassName('innerClass')[0]; d.setAttribute("style","display:none;");"); 
     } else { 
      mWebView.loadUrl("javascript:var d = document.getElementsByClassName('innerClass')[0]; d.setAttribute("style","display:visible;");"); 
     } 
     isVisible = !isVisible; 
    } 
} 

activity_main.xml中

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:onClick="runJavascript" 
     android:text="Click"/> 

    <WebView 
     android:id="@+id/activity_main_webview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

</LinearLayout> 
+0

謝謝..但不工作... huhu – Nere

+0

警報也不工作.. – Nere

+0

我很抱歉讓你困惑。我編輯了代碼,並測試了此代碼。 –

0
votes
answers
32 views
+10

網站菜單欄不能使用WebView android,而在手機瀏覽器中正常工作

1

我正在使用WebView和使用WebView android打開網站。該網站的菜單欄在移動瀏覽器中工作正常,但是當我在WebView android中打開URL /網站時,菜單欄不起作用。網站菜單欄不能使用WebView android,而在手機瀏覽器中正常工作

當打開Android中的WebView(菜單欄不響應)

When URL open in android webview

當手機瀏覽器

When opening in mobile browser in

下面打開的是代碼我正在用WebView打開URL:

WebView mWebView = (WebView) findViewById(R.id.webview); 
WebSettings mWebSettings = mWebView.getSettings(); 
mWebSettings.setJavaScriptEnabled(true); 
mWebSettings.setSupportZoom(false); 

mWebView.setWebViewClient(new WebViewClient()); 
mWebView.setWebViewClient(new WebViewClient() { 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    view.loadUrl(url); 
    return true; 
} 

public void onPageFinished(WebView view, String url) { 

} 

public void onReceivedError(WebView view, int errorCode, String descripti0on, String failingUrl) { 

} 
}); 

mWebView.loadUrl("https://www.buyvipgift.com"); 

請讓我知道我要去哪裏錯了!非常感謝...

沙发
0
1

我在我的代碼中添加了mWebSettings.setDomStorageEnabled(true)這行,現在工作正常。

setDomStorageEnabled(boolean flag) 

設置是否啓用DOM存儲API。

因爲登錄頁面提供的控件可用於自定義colour,fontdecorative image。當您選擇不同的選項時,該頁面即時更新;此外,您的選擇存儲在localStorage中,這樣,當您離開頁面時,稍後再加載它,您的選擇就會被記住。此外,如果您在另一個選項卡中加載此頁面,然後在着陸頁中更改您的選擇,則會在啓動StorageEvent時看到更新的存儲信息輸出。

0
votes
answers
53 views
+10

如果用戶通過我的Android Web視圖應用程序訪問它,則將類添加到我的WordPress網站的機構

0

如果通過我的Android WebView應用程序訪問我想給我的WordPress網站一些額外的樣式,並且可能還會修改某些功能,所以我需要找到一種方法,以區別於其他WebView應用程序。如果用戶通過我的Android Web視圖應用程序訪問它,則將類添加到我的WordPress網站的機構

我正在打算,通過向站點主體添加一個css-class來標記訪問應用程序。

有哪些方法可以實現?

在此先感謝。

沙发
0
0
var ua = navigator.userAgent.toLowerCase(); 
var isAndroid = ua.indexOf("android") > -1; //&& ua.indexOf("mobile"); 
if(isAndroid) { 
    // Do something! 
    // Redirect to Android-site? 
    document.getElementById("yourelement").classList.add('yourclass'); 
} 

試試這個...

+0

它應該只是發生THROU gh我的應用程序,而不是每個WebView應用程序。 –

+0

您可以使用狀態管理來了解您的應用程序或其他應用程序發送的請求。然後問題與您在上面指定的不同。 –

+0

你會如何指定它,以表明我想達到的目標? –

板凳
0
0

添加類最簡單的方法是用JS。

if(navigator.userAgent.toLowerCase().indexOf("android") > -1) 
    $('html').addClass('is-android'); 

,如果你想添加的PHP類,你應該使用像 https://codex.wordpress.org/Plugin_API/Filter_Reference/body_class

掛鉤,但它可能是:

1)你的主題不使用WP body_class()功能

2)或用戶代理報頭沒有被設置的int $_SERVER VAR

+0

它在哪裏指定,如果訪問者來自我的應用程序而不是來自每個webview應用程序,只需添加類即可? –

+0

sry,我不明白你的問題/問題 – wendt88

0
votes
answers
45 views
+10

屏幕縱橫比和QGraphicsWebView或QWebView

0

有什麼方法可以用QGraphicsWebView或QWebView來改變縱橫比嗎? 問題是LCD屏幕(800x480)具有非方形像素,因此網頁顯示不正確,例如,圈子變成橢圓形。 該軟件在Linux中與Xorg一起使用,但是,圖形驅動程序沒有設置寬高比的選項,這是一個非常簡單的幀緩衝區。屏幕縱橫比和QGraphicsWebView或QWebView

感謝您的想法!

+0

得到了Qt的論壇的人很好的建議: https://開頭論壇.qt.io /主題/ 85209 /屏幕縱橫比和 - qwebview –

沙发
0
0

我通過複製康斯坦丁託卡列夫在forum.qt.io提供了答案:

There are at least two ways to do this: 
In user style sheet set transform: scaleX(...) (or scaleY) for html element. Use prefixed version -webkit-tranform if you don't use QtWebKit 5.212 
Use QGraphicsView::scale with different values for x and y (if using QGraphicsWebView) 

Note that performance may decrease because of scaling 

原: https://forum.qt.io/topic/85209/screen-aspect-ratio-and-qwebview

0
votes
answers
45 views
+10

Contenteditable div在離子iOS應用程序中不可編輯

0

我正嘗試在離子應用程序中使用emojis創建文本輸入,並使用contenteditable div。當我爲應用程序提供服務時,它在瀏覽器中工作正常,但是當我在iOS模擬器或iPhone上運行應用程序時,div不可編輯。該div是可見的,如果我點擊它,鍵盤出現,但沒有光標。如果我鍵入,div中沒有??任何反應。Contenteditable div在離子iOS應用程序中不可編輯

<div contenteditable="true">Some text</div>

我懷疑這事做與WKWebView,但不知道爲什麼這個工程在Safari中,而不是在應用程序。是否需要啓用某些功能才能使其正常工作?

+0

我一直在使用UIWebView的嘗試,按照指示[這裏](https://ionicframework.com/docs/wkwebview/ ),但它有同樣的問題。 – moldstadt

沙发
0
0

所以問題出在webkit上。我需要改變用戶選擇選項自動在CSS可編輯的div:

-webkit-user-select: auto; 
0
votes
answers
36 views
+10

UIWebView是在iOS中顯示格式化文本的最佳方式嗎?

0

我想在我的iOS應用程序中顯示格式化文本,並且我有很多(關於與中等大小的維基百科條目一樣多的文本)是使用html顯示格式化文本的最佳方式還是有更好的方法?我在stackoverflow上看到WebViews吸收了很多內存,這是真的嗎? wikipedia如何在其iOS應用程序中顯示其所有文本?UIWebView是在iOS中顯示格式化文本的最佳方式嗎?

+1

你也可以使用屬性文本,它支持格式化(甚至HTML格式) – Luzo

沙发
0
2

您應該使用UITextViewUILabel來顯示帶格式文本的主要原因是,在第一次繪製UIWebView時沒有最終的方式獲取內容邊界。

您可以使用UIKit對象,無論您可以渲染NSAttributedString,例如UITextViewUILabel

如果您的內容是html,您可以將其轉換爲NSAttributedString

+0

只是讓我理解正確,你是說,而不是一個UIWebView與HTML我可以使用UITextView與NSAttributed文本,這將能夠格式化文本以同樣的方式HTML呢? –

+1

@BenNalle可以有優點和缺點。如果你的內容包含多媒體(尤其是視頻)或異步內容,那麼在UITextView中很難呈現。但是,如果你的內容更像是格式化文本和超鏈接,使用UITextView + NSAttributedString將會更加原生。 – Ryan

+0

異步內容是什麼意思?我很抱歉,我是編碼新手。我用來填充UITextView的NSAttributedString會通過Firebase數據庫請求來檢索嗎? –

板凳
0
0

我結束了使用一個約束高度和寬度的WKWebView。這樣我就可以加載HTML而無需任何額外的設置,並且我沒有遇到任何與Web視圖邊界有關的問題。

0
votes
answers
44 views
+10

在MainActivity中從webview調用javascript Xamarin

0

我試圖在主要活動中從webview調用javascript函數。這可以在我的自定義Render中調用,只需調用this.Element.Eval(「alert('')」)。在MainActivity中從webview調用javascript Xamarin

我無法調用FindViewById,因爲webview在Resouces.Id中不可用。

謝謝!

+0

你的WebView類型是什麼? 'Xamarin.Forms.WebView'或'Android.Webkit.WebView'? –

+0

你好,它是一個Xamarin.Forms.WebView –

沙发
0
0

Xamarin.forms.WebView提供Eval()方法從C#調用JavaScript,這裏是官方文檔:Call JavaScript from C#

我無法調用FindViewById,因爲webview在Resouces.Id中不可用。

使用x:Name命名在XAML你的控制,這樣的:

<WebView x:Name="webView" ... />

然後,你可以通過名字在後面的C#代碼中使用它,就像這樣:

webView.Eval (string.Format ("printMultiplicationTable({0}, {1})", number, end));

0
votes
answers
39 views
+10

如何識別用戶是輸入了搜索文本還是網站?

0

因此,我正在構建一個浮動應用程序,允許用戶瀏覽網頁並允許他們從YouTube等視頻網站收聽音頻,即使設備被鎖定/在後臺也是如此。 如何識別用戶是輸入了搜索文本還是網站?

在這裏我有一個文本框,用戶可以輸入該網站,或者他們要搜索的任何文本即SomeSite.com,www.SomeSite.com,一些文字被搜索

我想知道有沒有任何有效的方法來做到這一點。目前我想通過計算文本中的空間來區分這種情況(如果有一個或多個空格,那麼文本絕對不是URL)。但是這不適用於1個字的搜索查詢。另一種方法是檢查.com,.in,.uk等頂級域名,因爲可能會有成千上萬的域名,並且在未來也會增加。 我只想要一個有效區分網站或網址

沙发
0
0

可以使用Patterns類可從API級別8

if (Patterns.WEB_URL.matcher(myUrl).matches()) { 
    // Go to website 
} else { 
    // Submit as search query 
} 
板凳
0
0

您可以使用

0
votes
answers
63 views
+10

從其他應用程序加載到我的瀏覽器的外部網絡鏈接

0

我已經構建了一個Android瀏覽器,我想從其他應用程序加載外部網絡鏈接。在這裏,我在AndroidManifest.xml上添加了這段代碼。所以當我從其他應用打開http/https鏈接時,它會在瀏覽器列表中顯示我的應用。從其他應用程序加載到我的瀏覽器的外部網絡鏈接

<intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
      <data android:scheme="http" /> 
      <data android:scheme="https" /> 
     </intent-filter> 

現在,通過鍵名,我將獲得這些數據到我的瀏覽器??? 想,如果我發送一個網絡鏈接,關鍵是「URL」,然後我可以加載這個方式,網址,

Intent intent = getIntent(); 
    String url = intent.getStringExtra("url"); 

    if(url!=null) { 
     Intent i = new Intent(Intent.ACTION_VIEW); 
     i.setData(Uri.parse(url)); 
     startActivity(i); 
     finish(); 
    } 

我不知道由哪個鍵名其他應用程序是將數據發送到打開與外部瀏覽器。我該如何解決這個問題?

+0

你想在你的瀏覽器中打開url嗎? – R2R

+0

是的。但我可以捕捉到鏈接? (通過哪個鍵名) – abir99

沙发
0
0

http://www.vogella.com/tutorials/AndroidIntent/article.html

請參閱鏈接。在這裏,他們解釋瞭如何使用明確的意圖在兩個應用程序之間進行通信。他們的例子也完全滿足您的需求。