我有一个 WebView 应用程序,我希望它的行为如下:
用户可以点击任何链接并在同一个 WebView 中打开新页面,除非目标是 YouTube,在这种情况下我想要两种可能的情况:
我的主要 Activity 如下:
package com.prgguru.android;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.webkit.WebView;
@SuppressLint("SetJavaScriptEnabled")
public class MainActivity extends Activity {
WebView browser;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
browser=(WebView)findViewById(R.id.webkit);
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setDefaultFontSize(20);
browser.loadUrl("http://exo-agency.com/funnytube/");
}
}
提前致谢。
最佳答案
由 user2180451 回答:
我刚刚编辑为答案:
终于解决了这个问题。
对于任何有这个问题的人来说,我是如何让它工作的
在这里,我留下一个模板主要 Activity 放入 src > MainActivity.java
用你的网址填充它
/** YOUR PACKACGE NAME SHOULD GO HERE **/
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.content.Intent;
import android.net.Uri;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
@ Override
public void onCreate (Bundle savedInstanceState) {
super. onCreate (savedInstanceState);
setContentView (R.layout.main);
WebView web = (WebView) findViewById (R.id.webView);
web.getSettings().setJavaScriptEnabled (true);
web.getSettings().setJavaScriptCanOpenWindowsAutomatically(false);
web.getSettings().setPluginsEnabled (true);
web.getSettings().setSupportMultipleWindows (false);
web.getSettings().setSupportZoom (false);
web.setVerticalScrollBarEnabled (false);
web.setHorizontalScrollBarEnabled (false);
web.loadUrl ("THE URL TO YOUR WEBVIEW SITE SHOULD GO HERE");
web.setWebViewClient(new WebViewClient () {
@ Override public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.startsWith("vnd.youtube")){
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
}
else {
return false;
}
}
});
}
}
之后,在您的实际网页 HTML 网络应用程序中,您可以调用 YouTube 应用程序来播放带有此条目的视频
<a href="vnd.youtube://VIDEOID">WATCH ME</a>
只需将 VIDEOID 替换为您要观看的视频的实际视频 ID,当您单击它时,它将启动包含该视频的 YouTube 应用程序。
如果您想要图像缩略图而不是文本链接来打开视频
简单地
关于android - 自定义 Android WebView 以在内部打开除 YouTube 链接之外的所有链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15467104/