Вам необходимо «обновить» ChildBrowser: где-то около линии 340 есть этот код: webview.setWebViewClient(client);
. Замените его следующим образом:
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
webview.loadUrl("javascript:(function(){"+"var t=document.head.getElementsByTagName('title')[0];t.innerHTML="+myNewTitle+"})()");
}
});
Вы должны настроить также параметры чтения кода showWebPage()
установить myNewTitle
. Но после этого вам должно быть хорошо идти.
EDIT:
В принципе, я решил, что - для моего использования, по крайней мере, и, возможно, ваш - панель инструментов, как это стоит не было необходимости. Первоначально я настраивал ChildBrowser так, чтобы я мог без проблем использовать Google oAuth2, отправив обратно полный HTML-код обратно в JS-код. Мне определенно не нужна панель инструментов, так как пользователь идет туда, куда хочет Google, период. Мне пришлось взломать материал от кода, и оригинальный автор может быть зол на то, что я сделал с его кодом ... Вот список:
import android.view.Gravity;
import android.util.TypedValue;
import android.graphics.Color;
import android.graphics.Typeface;
public class ChildBrowser extends Plugin {
**public String zeTitle;**
// private EditText edittext;
private TextView edittext;
Все ссылки на EditText
должны быть изменены на TextView
.
result = this.showWebPage(args.getString(0), args.optJSONObject(1)**, args.getString(2)**);
Вам также нужно будет изменить материал в файле .js.
public String showWebPage(final String url, JSONObject options**, String myNewTitle**) {
if (options != null) {
showLocationBar = options.optBoolean("showLocationBar", true);
}
**zeTitle=myNewTitle;**
Закомментируйте всю связанную коду ImageButton
.
edittext = new TextView(ctx.getContext()); // insread of EditText
Закомментируйте edittext.setOnKeyListener
// edittext.setText(url);
edittext.setText(zeTitle);
edittext.setTextSize(TypedValue.COMPLEX_UNIT_PX, 24);
edittext.setGravity(Gravity.CENTER);
edittext.setTextColor(Color.DKGRAY);
edittext.setTypeface(Typeface.DEFAULT_BOLD);
Добавить на панель инструментов только то, что нужно:
// toolbar.addView(back);
// toolbar.addView(forward);
toolbar.addView(edittext);
// toolbar.addView(close);
Наконец:
public class ChildBrowserClient extends WebViewClient {
// EditText edittext;
TextView edittext;
/**
* Constructor.
*
* @param mContext
* @param edittext
*/
public ChildBrowserClient(TextView mEditText) {
// this.edittext = mEditText;
}
В коде JS:
cb.showWebPage(YOUR_URL, {showLocationBar:true}, YOUR_TITLE);
Вы должны быть добры идти. Я поставлю обновленную версию ChildBrowser, которую я использую в GitHub.
В коде js вам нужно сделать что-то вроде 'cb.showWebPage (url, {showLocationBar: true}, myTitle);' так что в коде Java вы делаете: result = this.showWebPage (args.getString (0), args.optJSONObject (1), args.getString (2)); 'Что касается iOS, я бы не знал, как это сделать, поскольку я не делаю Objective-C ... – dda
Моя измененная версия ChildBrowser находится на GitHub с образцом проекта. https://github.com/dda/slavebrowser/ – dda