任何人都可以看一下我的代码,让我知道我缺少什么?
MainActivity.java:
import React from 'react';
import { Badge } from 'native-base';
import {MaterialIcons as Icon} from '@expo/vector-icons';
import {
View,
Text,
TextInput,
Dimensions,
TouchableOpacity,
StyleSheet,
Image,
TouchableWithoutFeedback,
FlatList
} from 'react-native';
import image from '../assets/Images/ShoeJackCityLogo.png';
import { ifIphoneX } from 'react-native-iphone-x-helper';
import Modal from 'react-native-modal';
import { commonStyles } from './styles/styles';
class ShopAttack extends React.Component {
constructor(props) {
super(props);
this.state = {
counter: 0,
isModalVisible: false,
show: true,
}
[![}][1]][1]
IncrementItem = () => {
if(this.state.tempNum){
this.setState({ counter: this.state.counter + this.state.tempNum, tempNum: null });
}
else{
this.setState({ counter: this.state.counter + 1 });
}
}
DecrementItem = () => {
this.setState({ counter: this.state.counter - 1 });
}
ToggleClick = () => {
this.setState({ show: !this.state.show });
}
handleOnTextChange = (text) => {
const number = parseInt(text)
if(number){
this.setState({tempNumber: number})
}
}
_toggleModal = () =>
this.setState({ isModalVisible: !this.state.isModalVisible });
<View style={[commonStyles.row, commonStyles.alignSelfcenter]}>
<TouchableOpacity onPress={() => this.IncrementItem()}>
<View
style={[styles.counterButton]}
>
<Icon
type="MaterialIcons"
name="add"
size={40}
style={[
commonStyles.alignSelfcenter,
commonStyles.justifyCenter
]}
/>
<Text
style={[
commonStyles.inventrytextbutton,
commonStyles.white,
{}
]}
>
</Text>
</View>
</TouchableOpacity>
<View
style={[
styles.inventrybar,
styles.alignSelfcenter,
styles.row,
]}
>
<Icon
type="MaterialIcons"
name="monetization-on"
style={[
commonStyles.font16,
commonStyles.alignSelfcenter,
commonStyles.ml15,
{
color: '#C8A74D'
}
]}
/>
<TextInput
keyboardType = 'numeric'
onChange = {this.handleOnTextChange}
maxValue={99}
minValue={0}
style={[
commonStyles.inventrybartextbutton,
commonStyles.redText,
commonStyles.ml5
]}
>
{this.state.counter}
</TextInput>
</View>
<TouchableOpacity onPress={() => this.DecrementItem()}>
<View
style={[styles.counterButton]}
>
<Icon
type="MaterialIcons"
name="remove"
size={40}
style={[
commonStyles.alignItems,
commonStyles.justifyCenter
]}
/>
<Text
style={[
commonStyles.inventrytextbutton,
commonStyles.white,
{}
]}
>
</Text>
</View>
</TouchableOpacity>
</View>
activity_main.xml(布局文件):
public class MainActivity extends AppCompatActivity {
private WebView mWebView;
private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
mWebView.loadUrl("https://yahoo.com");
return true;
case R.id.navigation_dashboard:
mWebView.loadUrl("https://google.com");
return true;
case R.id.navigation_notifications:
mWebView.loadUrl("https://apple.com");
return true;
}
return false;
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BottomNavigationView navView = findViewById(R.id.nav_view);
mWebView = (WebView) findViewById(R.id.webkit);
navView.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);
WebSettings webSettings = mWebView.getSettings();
webSettings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
webSettings.setDomStorageEnabled(true);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
mWebView.loadUrl("https://google.com");
return true;
}
});
}
}
我的代码位于:Sample JDBC connection string
如果您认为这太含糊或太离题,请发表评论,我将其关闭。
答案 0 :(得分:2)
替换
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
mWebView.loadUrl("https://google.com");
return true;
}
});
使用
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return false;
}
});
使宿主应用程序有机会在URL大约为 加载到当前的WebView中。如果不是WebViewClient 提供,默认情况下,WebView会要求活动管理器选择 URL的适当处理程序。如果提供了WebViewClient,则返回 true会导致当前WebView中止加载URL,而 返回false导致WebView继续按以下方式加载URL 通常。
答案 1 :(得分:1)
到目前为止,我还不能告诉您应该使用单独的类来扩展WebViewClient类:
private class MyBrowser extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
,然后将其设置为WebViewClient:
mWebView.setWebViewClient(new MyBrowser());
还尝试添加用于自动加载图像的设置,启用javascript并设置滚动条:
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
mWebView.getSettings().setLoadsImagesAutomatically(true);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
case R.id.navigation_home:
mWebView.loadUrl("https://yahoo.com");
return true;
case R.id.navigation_dashboard:
mWebView.loadUrl("https://google.com");
return true;
case R.id.navigation_notifications:
mWebView.loadUrl("https://apple.com");
return true;
}
return false;
}
答案 2 :(得分:0)
如果您使用的是android 8+,则必须做两件事。
在清单应用程序标签中添加此android:usesCleartextTraffic="true"
属性。 AndroidManifest.xml
您应该覆盖此方法。
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.load(request.getUrl().toString())
return true;
}
});
答案 3 :(得分:0)
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
mWebView.loadUrl("https://facebook.com");
return true;
}
});