我的应用程序是一个混合了本地登录活动和webview的应用程序。在某些情况下,你会在电子邮件中得到一个链接,它会把你导航到webview中的某个屏幕。这个部分工作得很好,webview打开,用户被带到正确的地址。
当在outlook中点击链接时,整个应用程序似乎在outlook中打开,我甚至可以在outlook中进入我的本地登录屏幕。就像我的webview被劫持了一样。我的webview配置中缺少了什么吗?
AndroidManifest.xml:'
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<application
android:allowBackup="true"
android:configChanges="orientation"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Androidappshell"
android:usesCleartextTraffic="true">
<activity
android:name="package.name.LoginActivity"
android:exported="true"
android:theme="@style/Theme.App.SplashScreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="package.name.MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="domain.com"
android:port="9201" />
</intent-filter>
</activity>
</application>
网络视图设置:
@SuppressLint("SetJavaScriptEnabled")
private fun webViewSetUp(jsonData: String, url: String) {
wb_webView.webViewClient = object : WebViewClient() {
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
wb_webView.evaluateJavascript(
"javascript:localStorage.setItem('clientMode', 'android')", null
)
}
override fun onPageFinished(view: WebView, url: String) {
wb_webView.evaluateJavascript("javascript:setUpAngular($jsonData)", null)
}
}
wb_webView.clearCache(false)
wb_webView.loadUrl(url)
wb_webView.settings.javaScriptEnabled = true
wb_webView.settings.domStorageEnabled = true
wb_webView.addJavascriptInterface(JsWebInterface(this, this), "androidApp")
}
1条答案
按热度按时间au9on6nz1#
问题是我的活动没有被标记为单例示例,添加了:
android:launchMode="singleInstance"
我的活动。