我在使用电子邮件中点击的网页视图中加载网址时遇到问题。它提示使用我的应用程序工作正常和花花公子,但它只是加载一个空白页面。这是我的代码。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.util.Log;
import android.content.Intent;
import android.net.Uri;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "appdebug";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = (WebView) findViewById(R.id.webView1);
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setMediaPlaybackRequiresUserGesture(false);
webView.getSettings().setJavaScriptEnabled(true);
Log.i(TAG, "webview working");
}
private class MyWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.i(TAG, "overrideurl");
if (Uri.parse(url).getHost().equals("www.example.com")) {
// This is my web site, so do not override; let my WebView load the page
return false;
}
// Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return true;
}
}
}
在Logcat中,它报告webview正在运行,但是我没有看到来自overrideURl的任何内容。非常感谢任何帮助。
答案 0 :(得分:0)
它会起作用
公共类DynamicWebView扩展ActionBarActivity { WebView网站;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
Bundle bundle = getIntent().getExtras();
String url = bundle.getString("WebIntent");
Log.e("On Click Url", url);
final RelativeLayout layout = new RelativeLayout(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
getWindowManager().getDefaultDisplay().getWidth(), getWindowManager().getDefaultDisplay().getHeight());
layout.setLayoutParams(params);
setContentView(layout);
web = new WebView(this);
web.getSettings().setJavaScriptEnabled(true);
web.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
web.setWebViewClient(new WebViewClient());
web.loadUrl(url);
layout.addView(web);
layout.setVisibility(View.VISIBLE);
}
}
答案 1 :(得分:0)
关闭标记后,在manifest.xml中添加此权限
<uses-permission android:name="android.permission.INTERNET"/>
答案 2 :(得分:0)
这是答案。
Uri uri = this.getIntent().getData();
try {
URL urls = new URL(uri.getScheme(), uri.getHost(), uri.getPort(), uri.getPath()+ "?"+ uri.getQuery());
Log.i(TAG, String.valueOf(urls));
webView.loadUrl(String.valueOf(urls));
} catch (MalformedURLException e) {
e.printStackTrace();
}
shouldOverrideUrlLoading
是,我相信用于打开带有webview
的链接,并且在应用从应用外部的网址加载时不会查看。