【问题标题】:External links in the web application not opening in phone browserWeb 应用程序中的外部链接未在手机浏览器中打开
【发布时间】:2021-06-29 07:46:49
【问题描述】:

首先,我有一个使用 Flask 制作的 Web 应用程序。它只能在本地 IP 中工作。然后我想用 webview 制作一个移动应用程序,以从 android 应用程序访问 Web 应用程序。我有 2 个不同的活动在我的应用程序中。第一个活动是从用户那里获取本地 IP 以访问 Web 应用程序。下面是我的 MainActivity.java。

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button button = (Button) findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openActivity2();
        }
    });
}

public void openActivity2(){
    EditText editText1 = (EditText) findViewById(R.id.edittext1);
    String text = editText1.getText().toString();

    Intent intent = new Intent(this, Activity2.class);
    intent.putExtra(EXTRA_TEXT,text);
    startActivity(intent);
}

在我的活动 2 中,我使用 webview 查看适用于用户 IP 的 Web 应用程序。下面是我的 Activity2.java。

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_2);

    Intent intent = getIntent();
    String text = intent.getStringExtra(MainActivity.EXTRA_TEXT);

    myWebView = (WebView) findViewById(R.id.webView);


    myWebView.loadUrl("http://" + text + ":5000");

    myWebView.setWebViewClient(new WebViewClient());
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);

}

我的 Web 应用程序中有一个按钮,它会在新选项卡中打开 Google 身份验证页面。我的问题是,当单击该按钮时,如何在我的应用程序上将用户重定向到他的默认浏览器。是有合适的方法吗?

【问题讨论】:

    标签: android mobile webview mobile-browser


    【解决方案1】:

    要打开移动浏览器的任何 URL,您可以使用默认的 Intent 和 ACTION_VIEW 作为操作,并在意图数据中指定 Web URL。

    例如:

    public void openWebPage(String url) {
        Uri webpage = Uri.parse(url);
        Intent intent = new Intent(Intent.ACTION_VIEW, webpage);
        if (intent.resolveActivity(getPackageManager()) != null) {
            startActivity(intent);
        }
    }
    

    详细信息可以参考这个official guide。

    【讨论】:

    • 实际上我看到了这个解决方案,但问题是 url 在我嵌入到 webview 的 web 应用程序中的一个按钮中,它在我原始 web 应用程序的新选项卡中打开 url。我认为这是我的主要问题。
    • @erkutr 在这种情况下,您可以尝试使用任何虚拟 url 并检查。
    猜你喜欢
    • 2020-01-30
    • 2018-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多