Skip to content

Commit c85efa6

Browse files
committed
fix: allow urls to open in external browser
1 parent 0b4b527 commit c85efa6

File tree

6 files changed

+40
-6
lines changed

6 files changed

+40
-6
lines changed

.idea/deploymentTargetDropDown.xml

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/gradle.xml

Lines changed: 2 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/migrations.xml

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
android:roundIcon="@mipmap/ic_launcher_round"
1212
android:supportsRtl="true"
1313
android:theme="@style/Theme.MainActivity"
14+
android:usesCleartextTraffic="true"
1415
tools:targetApi="31">
1516
<activity
1617
android:name=".MainActivity"

app/src/main/java/com/commandbarexample/mainactivity/MainActivity.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class MainActivity : ComponentActivity() {
2424
Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) {
2525
Button(
2626
onClick = {
27-
CommandBar.openHelpHub( (this@MainActivity), CommandBarOptions("641ade4d"))
27+
CommandBar.openHelpHub( (this@MainActivity), CommandBarOptions("ORG_ID"))
2828
},
2929
modifier = Modifier.fillMaxSize().wrapContentSize(Alignment.Center)
3030
) {

commandbar/src/main/java/com/commandbar/android/HelpHubWebView.kt

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
package com.commandbar.android
22

33
import android.content.Context
4+
import android.content.Intent
45
import android.content.res.Resources
6+
import android.graphics.Color
57
import android.view.View
68
import android.view.ViewGroup
79
import android.webkit.JavascriptInterface
810
import android.webkit.WebChromeClient
11+
import android.webkit.WebResourceRequest
12+
import android.webkit.WebSettings
913
import android.webkit.WebView
1014
import android.webkit.WebViewClient
1115
import androidx.coordinatorlayout.widget.CoordinatorLayout
1216
import com.google.android.material.bottomsheet.BottomSheetDialog
1317
import org.json.JSONObject
1418

19+
1520
typealias FallbackActionCallback = ((action: Map<String, Any>) -> Unit)
1621

1722
class HelpHubWebView(context: Context, options: CommandBarOptions? = null, onFallbackAction: FallbackActionCallback? = null) : WebView(context) {
@@ -97,6 +102,15 @@ class HelpHubWebView(context: Context, options: CommandBarOptions? = null, onFal
97102
println(it)
98103
}
99104
}
105+
106+
override fun shouldOverrideUrlLoading(
107+
view: WebView?,
108+
request: WebResourceRequest?
109+
): Boolean {
110+
val intent = Intent(Intent.ACTION_VIEW, request!!.url)
111+
view!!.context.startActivity(intent)
112+
return true;
113+
}
100114
}
101115

102116
val html = getHTML(options)
@@ -135,11 +149,11 @@ class HelpHubWebView(context: Context, options: CommandBarOptions? = null, onFal
135149
val hostname = "10.0.2.2"
136150
val apiHost = "api.commandbar.com";
137151
val userId = if (options.userId == null) "null" else "\"${options.userId}\""
138-
152+
val launchCode = if (options.launchCode == null) "prod" else options.launchCode
139153
return """
140154
(function() {
141155
window._cbIsWebView = true;
142-
var o="${options.orgId}",n=["Object.assign","Symbol","Symbol.for"].join("%2C"),a=window;function t(o,n){void 0===n&&(n=!1),"complete"!==document.readyState&&window.addEventListener("load",t.bind(null,o,n),{capture:!1,once:!0});var a=document.createElement("script");a.type="text/javascript",a.async=n,a.src=o,document.head.appendChild(a)}function r(){var n;if(void 0===a.CommandBar){delete a.__CommandBarBootstrap__;var r=Symbol.for("CommandBar::configuration"),e=Symbol.for("CommandBar::orgConfig"),c=Symbol.for("CommandBar::disposed"),i=Symbol.for("CommandBar::isProxy"),m=Symbol.for("CommandBar::queue"),l=Symbol.for("CommandBar::unwrap"),d=[],s="${options.launchCode}",u=s&&s.includes("local")?"http://$hostname:8000":"https://$apiHost",f=Object.assign(((n={})[r]={uuid:o},n[e]={},n[c]=!1,n[i]=!0,n[m]=new Array,n[l]=function(){return f},n),a.CommandBar),p=["addCommand","boot"],y=f;Object.assign(f,{shareCallbacks:function(){return{}},shareContext:function(){return{}}}),a.CommandBar=new Proxy(f,{get:function(o,n){return n in y?f[n]:p.includes(n)?function(){var o=Array.prototype.slice.call(arguments);return new Promise((function(a,t){o.unshift(n,a,t),f[m].push(o)}))}:function(){var o=Array.prototype.slice.call(arguments);o.unshift(n),f[m].push(o)}}}),null!==s&&d.push("lc=".concat(s)),d.push("version=2"),t("".concat(u,"/latest/").concat(o,"?").concat(d.join("&")),!0)}}void 0===Object.assign||"undefined"==typeof Symbol||void 0===Symbol.for?(a.__CommandBarBootstrap__=r,t("https://polyfill.io/v3/polyfill.min.js?version=3.101.0&callback=__CommandBarBootstrap__&features="+n)):r();
156+
var o="${options.orgId}",n=["Object.assign","Symbol","Symbol.for"].join("%2C"),a=window;function t(o,n){void 0===n&&(n=!1),"complete"!==document.readyState&&window.addEventListener("load",t.bind(null,o,n),{capture:!1,once:!0});var a=document.createElement("script");a.type="text/javascript",a.async=n,a.src=o,document.head.appendChild(a)}function r(){var n;if(void 0===a.CommandBar){delete a.__CommandBarBootstrap__;var r=Symbol.for("CommandBar::configuration"),e=Symbol.for("CommandBar::orgConfig"),c=Symbol.for("CommandBar::disposed"),i=Symbol.for("CommandBar::isProxy"),m=Symbol.for("CommandBar::queue"),l=Symbol.for("CommandBar::unwrap"),d=[],s="api=$launchCode;commandbar=$launchCode",u=s&&s.includes("local")?"http://$hostname:8000":"https://$apiHost",f=Object.assign(((n={})[r]={uuid:o},n[e]={},n[c]=!1,n[i]=!0,n[m]=new Array,n[l]=function(){return f},n),a.CommandBar),p=["addCommand","boot"],y=f;Object.assign(f,{shareCallbacks:function(){return{}},shareContext:function(){return{}}}),a.CommandBar=new Proxy(f,{get:function(o,n){return n in y?f[n]:p.includes(n)?function(){var o=Array.prototype.slice.call(arguments);return new Promise((function(a,t){o.unshift(n,a,t),f[m].push(o)}))}:function(){var o=Array.prototype.slice.call(arguments);o.unshift(n),f[m].push(o)}}}),null!==s&&d.push("lc=".concat(s)),d.push("version=2"),t("".concat(u,"/latest/").concat(o,"?").concat(d.join("&")),!0)}}void 0===Object.assign||"undefined"==typeof Symbol||void 0===Symbol.for?(a.__CommandBarBootstrap__=r,t("https://polyfill.io/v3/polyfill.min.js?version=3.101.0&callback=__CommandBarBootstrap__&features="+n)):r();
143157
window.CommandBar.boot($userId, {}, { products: ["help_hub"] });
144158
window.CommandBar.openHelpHub();
145159
})();

0 commit comments

Comments
 (0)