请问高手,webview不显示按钮的问题

sulinly 2017-12-22 11:07:43
在手机浏览器上打开代码中的链接要显示按钮,webview中却不能正常显示,这是怎么回事啊?
百度
package com.sugem.test01;

import android.graphics.Bitmap;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView=findViewById(R.id.mywebview);
WebSettings webSettings = webView.getSettings();// 设置webview的各种属性
webSettings.setJavaScriptEnabled(true);// 开启js支持
webView.setWebChromeClient(new WebChromeClient());
webView.loadUrl("https://favorite.taobao.com/popup/add_collection_2.htm?id=102759750&itemtype=0&is_tmall=");
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
//mProgressDialog.show();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
});
}
}


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.sugem.test01">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>



<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.sugem.test01.MainActivity">

<WebView
android:id="@+id/mywebview"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>


apply plugin: 'com.android.application'

android {
compileSdkVersion 26
defaultConfig {
applicationId "com.sugem.test01"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}


// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
jcenter()
google()
}
}

task clean(type: Delete) {
delete rootProject.buildDir
}


还有个复杂版的,几乎把webview的设置都加上了,还是不行:
package com.sugem.test01;

import android.graphics.Bitmap;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView=findViewById(R.id.mywebview);
WebSettings webSettings = webView.getSettings();// 设置webview的各种属性
webSettings.setSupportZoom(true);
webSettings.setJavaScriptEnabled(true);// 开启js支持
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setAllowFileAccess(true);//设置允许访问文件数据
webSettings.setBuiltInZoomControls(true);
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webSettings.setDomStorageEnabled(true);
webSettings.setDatabaseEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
webView.loadUrl("https://favorite.taobao.com/popup/add_collection_2.htm?id=102759750&itemtype=0&is_tmall=");
webView.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
//mProgressDialog.show();
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
}
});
}
}
...全文
385 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zwl082768 2021-01-25
  • 打赏
  • 举报
回复
遇到同样的问题了,// webview从5.0开始默认不允许混合模式,https中不能加载http资源,需要设置开启。 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { ws.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); }、 无效,求大神告知!
sulinly 2017-12-27
  • 打赏
  • 举报
回复
试了,正解,万分感谢!
sulinly 2017-12-27
  • 打赏
  • 举报
回复
引用 4 楼 moonFY 的回复:
[quote=引用 3 楼 moonFY 的回复:] <WebView android:id="@+id/mywebview" android:layout_width="0dp" android:layout_height="0dp" 你不是设了0dp 么 当然不显示了
看错了。 // webview从5.0开始默认不允许混合模式,https中不能加载http资源,需要设置开启。 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { ws.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); }[/quote] 谢谢,谢谢大神,万分感谢!我马上试试!
sulinly 2017-12-26
  • 打赏
  • 举报
回复
拜托大神指点一下!
moonFY 2017-12-26
  • 打赏
  • 举报
回复
引用 3 楼 moonFY 的回复:
<WebView android:id="@+id/mywebview" android:layout_width="0dp" android:layout_height="0dp" 你不是设了0dp 么 当然不显示了
看错了。 // webview从5.0开始默认不允许混合模式,https中不能加载http资源,需要设置开启。 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { ws.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); }
moonFY 2017-12-26
  • 打赏
  • 举报
回复
<WebView android:id="@+id/mywebview" android:layout_width="0dp" android:layout_height="0dp" 你不是设了0dp 么 当然不显示了
sulinly 2017-12-22
  • 打赏
  • 举报
回复
在手机自带浏览器上,能正常显示按钮,如下图:

但在webview中按钮不见了,如下图:

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧