我试过使用JavaScriptInterface在WebView中做过.但它没有用.如何从XWalkView获取HTML内容?
通过这种方式,我可以从WebView获取HTML:
public class MainActivity extends AppCompatActivity {
WebView myWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl("http://joerichard.net/api/test/generate.htm");
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.addJavascriptInterface(new MyJavaScriptInterface(this), "HtmlViewer");
myWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
if(url.endsWith("generate.htm")){
myWebView.loadUrl("javascript:window.HtmlViewer.showHTML" +
"('<html>'+document.getElementsByTagName('html')[0].innerHTML+'</html>');");
}
}
});
}
class MyJavaScriptInterface {
private Context ctx;
MyJavaScriptInterface(Context ctx) {
this.ctx = ctx;
}
public void showHTML(String html) {
Document doc = Jsoup.parse(html);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我为XWalkView尝试了相同但没有成功.如何从XWalkView获取HTML源代码?
我正在尝试做导航抽屉选项.
这是我的xml:
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<Button
android:id="@+id/sendnewmessages"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:background="@drawable/nothere"
android:gravity="center_horizontal"
android:shadowColor="@android:color/black"
android:shadowDx="1"
android:shadowDy="1"
android:shadowRadius="1"
android:text="Send New Messages"
android:textAlignment="center"
android:textColor="@android:color/black" />
<EditText
android:id="@+id/searchmessage"
android:layout_height="40dp"
android:layout_width="200dp"
android:gravity="center"
android:hint="Search Messages"/>
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
<ListView android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
android:background="#111"/>
</LinearLayout>
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
如果我删除Linearlayout没有错误.此按钮出现在屏幕中间listview,edittext显示在屏幕中间.问题是对象没有对齐.有没有办法对齐视图对象DrawerLayout?
如果我不删除,linearlayout我会收到此错误:
LinearLayout$LayoutParams cannot be cast to android.support.v4.widget.DrawerLayout$LayoutParams
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
E/AndroidRuntime(3454):FATAL EXCEPTION:main进程:com.brilliant.bridge,PID:3454 java.lang.ClassCastException:android.widget.LinearLayout $ LayoutParams无法强制转换为android.support.v4.widget.DrawerLayout $ LayoutParams在android.support.v4.widget.DrawerLayout.isDrawerView(DrawerLayout.java:910)的android.support.v4.widget.DrawerLayout.isDrawerOpen(DrawerLayout.java:1156)com.brilliant.bridge.AdminMessages.onPrepareOptionsMenu(AdminMessages) .java:220)在com.android.internal.policy的com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:464)的android.app.Activity.onPreparePanel(Activity.java:2556).位于android.view.Choreographer的com.android.internal.policy.impl.PhoneWindow …
我正在使用XWalkView将移动网站显示为一个应用程序.我的问题是当应用程序进入后台并返回时它重新加载它显示的页面.我希望保持状态并从背景状态继续.这是我的代码:
public class MainActivity extends AppCompatActivity {
static final String URL = "https://www.biletdukkani.com.tr";
static final int MY_PERMISSIONS_REQUEST_ACCESS_LOCATION = 55;
static final String SHOULD_ASK_FOR_LOCATION_PERMISSION = "shouldAskForLocationPermission";
static final String TAG = "MainActivity";
static final String COMMAND = "/system/bin/ping -c 1 185.22.184.184";
static XWalkView xWalkWebView;
TextView noInternet;
static Bundle stateBundle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(TAG, "onCreate");
// Check whether we're recreating a previously destroyed instance
if (savedInstanceState != null) {
// Restore value of members from saved state
stateBundle …Run Code Online (Sandbox Code Playgroud)