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 Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 22

0
votes
answers
7 views
+10

使用iOS在WKWebView中自動播放YouTube視頻11

1

我想在我的應用中使用小型YouTube播放器。我發現推薦的唯一方法是將帶有YouTube播放器的網頁嵌入到我的應用程序中。所以我用WKWebView並加載嵌入YouTube播放器頁面自動播放參數:https://www.youtube.com/embed/VUbsFtLkGN8?autoplay=1使用iOS在WKWebView中自動播放YouTube視頻11

代碼將是這樣的:在桌面Safari瀏覽器

let webConfiguration = WKWebViewConfiguration() 
let webView = WKWebView(frame: .zero, configuration: webConfiguration) 
let youtubeURL = URL(string: "https://www.youtube.com/embed/VUbsFtLkGN8?autoplay=1") 
webView.load(URLRequest(url: youtubeURL!)) 

這個嵌入播放器自動播放的網址,但在移動Safari或WKWebView不會自動播放。我可以強制WKWebView以某種方式自動播放視頻嗎?或者使用其他YouTube播放器網址?

+0

並不在視頻的蘋果阻止自動播放? –

+0

是的,在Safari中,但我認爲你應該可以在你的應用中自動播放。 – Ondra

沙发
0
0
var youTubeVideoHTML: String = "<!DOCTYPE html><html><head><style>body{margin:0px 0px 0px 0px;}</style></head> <body> <div id="player"></div> <script> var tag = document.createElement('script'); tag.src = "http://www.youtube.com/player_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var player; function onYouTubePlayerAPIReady() { player = new YT.Player('player', { width:'%0.0f', height:'%0.0f', videoId:'%@', events: { 'onReady': onPlayerReady, } }); } function onPlayerReady(event) { event.target.playVideo(); } </script> </body> </html>" 

func playVideoWithId(videoId: String) { 
    var html: String = String(format: youTubeVideoHTML, self.frame.size.width, self.frame.size.height, videoId) 


} 

或替代的,你可以使用

YTPlayer For Playing Youtube Video

+0

它不是完整的代碼,也不會自動播放。 – Ondra

+0

YTPlayer庫似乎不再被維護。 – Ondra

0
votes
answers
5 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

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

0
votes
answers
5 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
5 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
4 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
4 views
+10

webView.canGoBack()不能工作

1

最近我所有的WebView基於應用程序開始有後退按鈕的問題。它看起來與更新一些Android組件的問題,請幫助解決這個問題或一些替代解決方案?webView.canGoBack()不能工作

webView.canGoBack()總是返回false

PS:所有應用程序在前幾天都正常工作。

我使用的是這樣的:

@Override 
    public void onBackPressed() { 
     if (webView.canGoBack()) { 
      webView.goBack(); 
     } else { 
      super.onBackPressed(); 
     } 
    } 
+2

我也注意到這一點。查看[Chromium BUG 794020](https://bugs.chromium.org/p/chromium/issues/detail?id=794020)以及[stackoverflow question 47771494](https://stackoverflow.com/questions/47771494) 。 – hQuse

+0

確切地說,希望他們能夠在更新中儘快修復它。 –

沙发
0
1

通過這樣的創建自己的canGoBack ....

Initally you need add the home page.. 
ArrayList<String> urls = new ArrayList<>(); 
urls.add(www.google.com); 

//after that you need override this method 
webView.setWebViewClient(new WebViewClient() { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      Log.d(TAG, "shouldOverrideUrlLoading: "+url); 
      urls.add(url); 
      return true; 
     } 
     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) 
     { 
      super.onPageStarted(view, url, favicon); 
      pDialog.show(); 
     } 
     @Override 
     public void onPageFinished(WebView view, final String url) { 
      pDialog.dismiss(); 
     } 
    }); 

//for onBackPressed, same like in custom button for back click option 
@Override 
public void onBackPressed() { 
    if(!canGoBack() 
    { 
     super.onBackPressed(); 
    } 
} 

//Custome Method 
public boolean canGoBack() 
{ 
    if(urls.size() == 1) // home page 
    { 
     return false; 
    } 
    else 
    { 
     webView.loadUrl(urls.get(urls.size()-2)); // load previous url 
     urls.remove(urls.size()-1); // remove last loaded url 
     return true; 
    } 
} 
0
votes
answers
4 views
+10

應該使用什麼樣的視圖來獲取WebView的標題和Url,如下圖所示?

0

WebView with Title and Url and action menu that opens the page into Chrome應該使用什麼樣的視圖來獲取WebView的標題和Url,如下圖所示?

所以你可以看到有一個標題「Casi di femminicidio ...」和一個Url正下方。在右邊有一個菜單,其中包含一個按鈕,可直接將URL打開到Chrome選項卡中。我認爲向用戶展示實際的url和協議是很好的。它是一個默認的視圖類型?

+0

這是一款經典的工具欄,請查看https://developer.android.com/reference/android/support/v7/widget/Toolbar.html –

沙发
0
0

此行添加到您的依賴關係:

implementation 'com.android.support:customtabs:26.1.0' 

,然後使用:

new CustomTabsIntent 
      .Builder() 
      .build() 
      .launchUrl(this, Uri.parse("http://google.com")); 

,如果你想改變欄中可以使用的顏色:

  .setToolbarColor() 

更多在這裏:https://developer.chrome.com/multidevice/android/customtabs

祝你好運!

+0

非常感謝! – Nullo

0
votes
answers
4 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
4 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
4 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