问题描述
首先,我有一个用 Flask 制作的网络应用程序。它只能在本地 IP 中工作。然后我想制作一个带有 webview 的移动应用程序,以便从 android 应用程序访问网络应用程序。我有 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 身份验证页面。我的问题是如何在我的应用程序上使用户在单击该按钮时重定向到他的默认浏览器成为可能。是有没有合适的方法来做到这一点?
解决方法
要打开移动浏览器的任何网址,您可以使用默认的 Intent
和 ACTION_VIEW
作为操作,并在意图数据中指定网址。
例如:
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。