Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我正在将一个网站转换为应用程序,但应用程序中没有打开链接。安卓工作室_Java_Android_Android Webview - Fatal编程技术网

Java 我正在将一个网站转换为应用程序,但应用程序中没有打开链接。安卓工作室

Java 我正在将一个网站转换为应用程序,但应用程序中没有打开链接。安卓工作室,java,android,android-webview,Java,Android,Android Webview,我正在将一个网站转换为应用程序,但应用程序中没有打开链接。我做了很多改变,但什么都没有发生。你能帮帮我吗。如何解决。我希望所有的链接都在应用程序中打开,我网站上的Youtube视频也不会全屏打开。 提前谢谢 Main Activity Code -- package com.mywebsite.fun; import android.app.ProgressDialog; import android.content.Intent; import androi

我正在将一个网站转换为应用程序,但应用程序中没有打开链接。我做了很多改变,但什么都没有发生。你能帮帮我吗。如何解决。我希望所有的链接都在应用程序中打开,我网站上的Youtube视频也不会全屏打开。 提前谢谢

Main Activity Code --

    package com.mywebsite.fun;

    import android.app.ProgressDialog;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.net.Uri;
    import android.os.Bundle;
    import android.support.design.widget.FloatingActionButton;
    import android.support.design.widget.Snackbar;
    import android.view.KeyEvent;
    import android.view.View;
    import android.support.design.widget.NavigationView;
    import android.support.v4.view.GravityCompat;
    import android.support.v4.widget.DrawerLayout;
    import android.support.v7.app.ActionBarDrawerToggle;
    import android.support.v7.app.AppCompatActivity;
    import android.support.v7.widget.Toolbar;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.webkit.WebSettings;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;

    import java.net.URI;

    public class MainActivity extends AppCompatActivity
            implements NavigationView.OnNavigationItemSelectedListener {

        //initializing WebView
        private WebView mwebView;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
            setSupportActionBar(toolbar);

            FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
            fab.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                            .setAction("Action", null).show();
                }
            });

            DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                    this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
            drawer.setDrawerListener(toggle);
            toggle.syncState();

            NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
            navigationView.setNavigationItemSelectedListener(this);

            //WebView
            mwebView = (WebView) findViewById(R.id.myWebView);
            WebSettings webSettings = mwebView.getSettings();
            webSettings.setJavaScriptEnabled(true);
            //improve webView performance
            mwebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
            mwebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
            mwebView.getSettings().setAppCacheEnabled(true);
            mwebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
            webSettings.setDomStorageEnabled(true);
            webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
            webSettings.setUseWideViewPort(true);
            webSettings.setSavePassword(true);
            webSettings.setSaveFormData(true);
            webSettings.setEnableSmoothTransition(true);


            mwebView.loadUrl("https://laughonlyblog.wordpress.com/about/");
            //force links open in webview only
            mwebView.setWebViewClient(new MyWebviewClient());

        }

        @Override
        public void onBackPressed() {
            DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            if (drawer.isDrawerOpen(GravityCompat.START)) {
                drawer.closeDrawer(GravityCompat.START);
            } else {
                super.onBackPressed();
            }
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();

            //noinspection SimplifiableIfStatement
            if (id == R.id.action_settings) {
                return true;
            }

            return super.onOptionsItemSelected(item);
        }

        @SuppressWarnings("StatementWithEmptyBody")
        @Override
        public boolean onNavigationItemSelected(MenuItem item) {
            // Handle navigation view item clicks here.
            int id = item.getItemId();

            if (id == R.id.nav_camera) {
                // Handle the camera action
                mwebView.loadUrl("http://www.newsweek.com/us");
            } else if (id == R.id.nav_slideshow) {
                mwebView.loadUrl("http://www.newsweek.com/world");
            } else if (id == R.id.nav_manage) {
                mwebView.loadUrl("http://www.newsweek.com/tech-science");
            } else if (id == R.id.nav_gallery) {
                mwebView.loadUrl("http://www.newsweek.com/sports");
            } else if (id == R.id.nav_share) {
                mwebView.loadUrl("http://www.newsweek.com/about-newsweek");
            } else if (id == R.id.nav_send) {
                mwebView.loadUrl("http://www.newsweek.com/contact");
            }

            DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
            drawer.closeDrawer(GravityCompat.START);
            return true;
        }

        private class MyWebviewClient extends WebViewClient {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                if (Uri.parse(url).getHost().equals("www.laughonlyblog.wordpress.com/about/")) {
                    //open url contents in webview
                    return false;
                } else {
                    //here open external links in external browser or app
                    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                    startActivity(intent);
                    return true;
                }

            }
            //ProgressDialogue
            ProgressDialog pd = null;


           @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                pd=new ProgressDialog(MainActivity.this);
                pd.setTitle("Please Wait..");
                pd.setMessage("Website is Loading..");
                pd.show();
                super.onPageStarted(view, url, favicon);
            }

            @Override
            public void onPageFinished(WebView view, String url) {
                pd.dismiss();
                super.onPageFinished(view, url);
            }
        }
        //goto previous page when pressing back button

        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_DOWN) {
                switch (keyCode) {
                    case KeyEvent.KEYCODE_BACK:
                        if (mwebView.canGoBack()) {
                            mwebView.goBack();
                        } else {
                            finish();
                        }
                        return true;
                }
            }
            return super.onKeyDown(keyCode, event);
        }
    }



    Manifest Code---

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.mywebsite.fun">

        <uses-permission android:name="android.permission.INTERNET" />
        android:hardwareAccelerated="true"


        <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"
                android:label="@string/app_name"
                android:theme="@style/AppTheme.NoActionBar">
                <intent-filter>
                   <action android:name="android.intent.action.MAIN" />

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


            </activity>
        </application>

    </manifest>
主要活动代码--
package com.mywebsite.fun;
导入android.app.ProgressDialog;
导入android.content.Intent;
导入android.graphics.Bitmap;
导入android.net.Uri;
导入android.os.Bundle;
导入android.support.design.widget.FloatingActionButton;
导入android.support.design.widget.Snackbar;
导入android.view.KeyEvent;
导入android.view.view;
导入android.support.design.widget.NavigationView;
导入android.support.v4.view.GravityCompat;
导入android.support.v4.widget.DrawerLayout;
导入android.support.v7.app.ActionBarDrawerToggle;
导入android.support.v7.app.AppActivity;
导入android.support.v7.widget.Toolbar;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.webkit.WebSettings;
导入android.webkit.WebView;
导入android.webkit.WebViewClient;
导入java.net.URI;
公共类MainActivity扩展了AppCompatActivity
实现NavigationView.OnNavigationItemSelectedListener{
//初始化WebView
私有网络视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
FloatingActionButton fab=(FloatingActionButton)findViewById(R.id.fab);
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Snackbar.make(查看“替换为您自己的操作”,Snackbar.LENGTH\u LONG)
.setAction(“Action”,null).show();
}
});
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
ActionBarDrawerToggle切换=新建ActionBarDrawerToggle(
这,抽屉,工具栏,R.string.navigation\u drawer\u open,R.string.navigation\u drawer\u close);
抽屉。设置抽屉定位器(开关);
toggle.syncState();
NavigationView NavigationView=(NavigationView)findViewById(R.id.nav_视图);
navigationView.setNavigationItemSelectedListener(此);
//网络视图
mwebView=(WebView)findViewById(R.id.myWebView);
WebSettings WebSettings=mwebView.getSettings();
setJavaScriptEnabled(true);
//提高webView性能
mwebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
mwebView.getSettings().setCacheMode(WebSettings.LOAD\u CACHE\u ELSE\u网络);
mwebView.getSettings().setAppCacheEnabled(true);
mwebView.setScrollBarStyle(视图。滚动条在覆盖层内);
webSettings.setDomStorageEnabled(true);
webSettings.setLayoutAlgorithm(webSettings.LayoutAlgorithm.Shorrow_COLUMNS);
webSettings.setUseWideViewPort(true);
webSettings.setSavePassword(true);
webSettings.setSaveFormData(真);
webSettings.setEnableSmoothTransition(true);
mwebView.loadUrl(“https://laughonlyblog.wordpress.com/about/");
//仅在webview中强制打开链接
setWebViewClient(新的MyWebviewClient());
}
@凌驾
public void onBackPressed(){
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
if(抽屉isDrawerOpen(重力压缩机启动)){
抽屉。关闭抽屉(重力压缩机启动);
}否则{
super.onBackPressed();
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
//noinspection SimplifiableIf语句
if(id==R.id.action\u设置){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
@SuppressWarnings(“StatementWithEmptyBody”)
@凌驾
公共布尔值onNavigationItemSelected(MenuItem项){
//处理导航视图项单击此处。
int id=item.getItemId();
if(id==R.id.nav_摄像机){
//处理相机的动作
mwebView.loadUrl(“http://www.newsweek.com/us");
}else if(id==R.id.nav_幻灯片){
mwebView.loadUrl(“http://www.newsweek.com/world");
}else if(id==R.id.nav_manage){
mwebView.loadUrl(“http://www.newsweek.com/tech-science");
}否则如果(id==R.id.nav_画廊){
mwebView.loadUrl(“http://www.newsweek.com/sports");
}else if(id==R.id.nav_共享){
mwebView.loadUrl(“http://www.newsweek.com/about-newsweek");
}else if(id==R.id.nav_send){
mwebView.loadUrl(“http://www.newsweek.com/contact");
}
抽屉布局抽屉=(抽屉布局)findViewById(R.id
 @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
           /* if (Uri.parse(url).getHost().equals("www.laughonlyblog.wordpress.com/about/")) {
                //open url contents in webview
                return false;
            } else {
                //here open external links in external browser or app
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                startActivity(intent);

            } */
return true;
        }