问题描述
我刚刚为 Android 构建了我的第一个基于 WebView 的移动应用程序。该应用程序完全基于 WebView。用户可以在 Facebook 评论插件通常显示的项目页面上查看文章,然后用户可以在那里添加评论。
当我在我的应用中测试插件时,会发生以下情况:
此后没有其他任何事情发生,我也不会被重定向回我的应用。
看看我的activity_main.xml文件:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
tools:ignore="MergeRootFrame">
<WebView
android:id="@+id/activity_main_webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
这是我的 MainActivity.java 文件的样子:
package com.my.app;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.webkit.CookieManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
private WebView WebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);
WebView = (WebView) findViewById(R.id.activity_main_webview);
WebView.setWebViewClient(new WebViewClient());
WebView.loadUrl("https://mywebsite.com/");
WebSettings webSettings = WebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAppCacheEnabled(true);
WebView.getSettings().setUserAgentString("My App UserAgent");
WebView.setBackgroundColor(Color.parseColor("#080808"));
WebView.setWebViewClient(new MyCustomWebViewClient());
}
class MyCustomWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view,String url) {
if (Uri.parse(url).getHost().equals("mywebsite.com")) {
//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;
}
}
}
@Override
public void onBackpressed() {
if (WebView.canGoBack()) { WebView.goBack();
}else {
super.onBackpressed();
}
}
}
如果有人能给我提供这方面的指导,我将不胜感激。我仍在了解这如何在基于 WebView 的 Android 移动应用程序中工作。我还想提一下,我的应用程序中所有不在我的域中的链接都必须在单独的浏览器中打开,这一点很重要。根据我到目前为止的尝试,我需要特别更改哪些插件才能正常工作?
在此先非常感谢您!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)