gpt4 book ai didi

java - 如何获取标题 onPageFinished() (webview)?

转载 作者:行者123 更新时间:2023-12-02 04:48:27 25 4
gpt4 key购买 nike

我有一个问题。我在我的项目中使用 WebView 对象。在 MainActivity.java 代码端我使用 webbBrowser.setWebViewClient(new ViewBrowser());

有第二个类,名称为ViewBrowser.java,此文件使用 WebViewClient 进行扩展。

通过在这个java文件中使用这个客户端服务,有2个函数被覆盖

1 - shouldOverrideUrlLoading(WebView View ,字符串 url)
2 - onPageFinished(WebView View ,字符串 url)

onPageFinished()中我使用了view.getTitle();我想将此标题设置为我的MainActivity类上的TextView。有谁可以帮助我吗?

这是我的 MainActivity.java 类:

public class MainActivity extends Activity implements OnClickListener {

Button bttnSearch;
EditText txttInput;
TextView txttView;
WebView webbBrowser;

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

bttnSearch = (Button) findViewById(R.id.btnGo);
txttInput = (EditText) findViewById(R.id.txtInput);
txttView = (TextView) findViewById(R.id.txtView);
webbBrowser = (WebView) findViewById(R.id.broWebView);

webbBrowser.setWebViewClient(new ViewBrowser());
webbBrowser.getSettings().setLoadsImagesAutomatically(true);
webbBrowser.getSettings().setJavaScriptEnabled(true);
webbBrowser.getSettings().setLoadWithOverviewMode(true);
webbBrowser.getSettings().setUseWideViewPort(true);
webbBrowser.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webbBrowser.setScrollbarFadingEnabled(true);

webbBrowser.loadUrl("http:/www.google.com");

bttnSearch.setOnClickListener(this);
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String urlText;
urlText = txttInput.getText().toString();

switch(v.getId()){
case R.id.btnGo:
InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
webbBrowser.loadUrl(urlText);

break;
}
} }

这是我的 ViewBrowser.java:

public class QaziViewBrowser extends WebViewClient {

//private Toast txttView;

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return super.shouldOverrideUrlLoading(view, url);
}

@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
// i want to get Title text of the web page and set to txttView
}


}

最佳答案

在您创建的 Activity 中像这样注册广播

registerReceiver(updateText, new IntentFilter("UPDATE_TEXT"));

onDestroy 注销

unregisterReceiver(updateText);

制作广播接收器

BroadcastReceiver updateText = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "onReceive()");
// check if intent is not null and other verification if needed
TextView.setText(intent.getStringExtra("title"));
}
};

在你的 webview 类中,你要做的就是将标题放入 Intent 中进行广播

        Intent intentToBroadcast = new Intent("UPDATE_TEXT");
intentToBroadcast.putExtra(title, webview.getTitle());
mContext.sendBroadcast(intentToBroadcast);

我还没有测试运行这段代码,但这是可行的逻辑,希望它有帮助。

关于java - 如何获取标题 onPageFinished() (webview)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29471333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com