- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
有了 Crosswalk,我有一个非常方便的 javascript-to-app 接口(interface),所以我可以从 javascript 调用 java 函数并将数据从我的 webapp 共享到我的 android 应用。
如何使用自定义选项卡(或受信任的网络 Activity )实现这一点?
好像根本就没有办法。应该有,特别是当我的应用程序和我的游戏/网络应用程序来自同一作者时。
比如我不信任LocalStorage,尤其是现在有了Custom Tabs,它可能会被清理,或者用户可能会卸载浏览器并安装另一个,这样保存的数据就会丢失,用户会生气应用程序丢失了保存的数据,甚至不了解数据在浏览器中,而不是在应用程序中。所以我曾经让我的网络应用程序调用该应用程序来保存数据。
另一个例子,当自定义选项卡使用 Firefox 而不是 Chrome 时,语音合成将不可用。我可以在我的网络应用程序中轻松检测到它。但我希望我的 webapp 调用该应用程序并将单词发送给它发音。这就是我对 Crosswalk 所做的,因为它也不支持语音。
我知道 webview 比自定义选项卡更适合我使用,但是当 webview 不能在设备(尤其是 Android <5)上使用时,我的应用程序除了打开一个改为自定义选项卡(或受信任的 Web Activity ,如果可用)。我不能再使用 Crosswalk,它已经停产并且仍然充满严重的错误。而 GeckoView 或 Alibaba Gcanvas 等其他解决方案还没有准备好。
编辑:
在这篇关于可信网络 Activity 的文章中 https://developers.google.com/web/updates/2017/10/using-twa我读了
Nevertheless, you can coordinate with the web content by passing data to and from the page in URLs (e.g. through query parameters, custom HTTP headers, and intent URIs.)
编辑:
我已经阅读了很多页面,但 Intents 和深层链接对我来说仍然很模糊,但这是我尝试过的。
我为自定义操作添加了一个 Intent 过滤器:
<receiver android:name=".OutgoingReceiver" android:enabled="true">
<intent-filter>
<action android:name="custom_tabs_js_interface" />
</intent-filter>
</receiver>
我为那个接收器创建了一个类:
public class OutgoingReceiver extends BroadcastReceiver {
public static final String CUSTOM_INTENT = "custom_tabs_js_interface";
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "received" , Toast.LENGTH_SHORT).show();
}
我在 javascript 中用
调用它location.href="intent:#Intent;action=custom_tabs_js_interface;end";
我现在甚至不传递数据,我只是尝试调用它。但什么也没发生...
最佳答案
是的,广播接收器由于某种原因无法工作,可能是出于安全原因。但是你可以使用 Activity代替 Broadcast Receiver如下所示。
使用自定义 Android Intent Uri具有自定义主机、查询参数、包、方案 和 Intent 操作。从您的 javascript/html 代码中调用此 intent uri。例子
"intent://myhost?key=value#Intent;scheme=myscheme;package=my.app.package;action=someaction;end"
同时声明一个 activity在manifest文件 intent filter处理特定的 host、scheme 和 action。示例
<activity android:name="my.app.package.ReceiverActivity">
<intent-filter>
<action android:name="someaction" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="myhost"
android:scheme="myscheme" />
</intent-filter>
</activity>
现在在 Activity 中,处理 Intent 并从查询参数中提取数据。对数据做任何你想做的事,并可能完成 Activity ,以防你想返回到同一屏幕。示例
public class ReceiverActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String value = getIntent().getData().getQueryParameter("key");
if (value != null) {
// value is basically your data
}
// in case you want to go back to same screen
finish();
}
}
就是这样。在 Android Activity 中,您有可供处理的数据。此 ReceiverActivity 可以(最好)属于同一个 TWA 应用程序。现在,通过这个Receiver Activity,您可以轻松地将数据发送/共享到任何其他应用程序。希望这会有所帮助。
关于android - 如何将数据从我的 TWA 网络应用程序发送到我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52042295/
首先给大家介绍一个很好用的学习地址:https://cloudstudio.net/columns 今天,我们的主要任务是按照既定的流程再次运行模型,并将其成功加载到 Web 应用程序中,以便通过
什么是 Web 服务(Rmi、ejb、soap)? Web服务和Web应用程序有什么区别?是否可以在 Web 应用程序中实现 Web 服务? 最佳答案 Web 服务是一种传输/公开信息的方式,使得可以
典型的 J2ee web 应用程序或任何基于 java 构建的 web 应用程序是多线程应用程序,所以每次我编写一些代码时我都必须牢记竞争条件或并发修改? 最佳答案 Is a typical J2ee
我正在将 google 登录集成到我的网络应用程序中。我按照 here 的说明进行操作。但我无法从登录中获取任何用户信息。不过,登录按钮工作得很好。 我使用这些 JavaScript 函数: i
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 4年前关闭。 Improve this questi
是否有通用 cookie 或其他方式可以检查用户是否登录到谷歌应用程序。然后,如果是这样,我想运行一些 js。如果我知道通常在 Google 应用程序/服务中使用的 cookie 的名称,我就可以读取
我正在尝试以 Web 应用程序样式展示我的记事卡。我不担心缓存或让它离线工作。 我只想让它在 iOS 浏览器中呈现良好。这是链接:http://kaninepete.com/flashcard/rev
我正在使用 bootstrap 制作响应式网络应用。 我开始在我的网站上使用导航栏和表单进行一些测试,问题是 android 中的导航栏,因为它以全宽度呈现(如桌面 View ),而 chrome(对
我正在尝试使用 http://zxing.appspot.com/scan从 WebApp 调用 Barcode Scanner,但我无法让它工作。即使在不必要地更新和重新安装之后,它所做的只是显示默
在 WebStorm 中运行 Dart Web 应用程序时,?底部的 Pane 报告以下内容(--port 因运行而异): /home/tom/dart-sdk/bin/pub serve web -
由于某些原因,我的网络应用程序的路径似乎有问题。 我在 Eclipse 中的 WEB-INF 路径如下: Project --src -- main --webapp
Apps 脚本最近已将 StackDriver 日志移至 Apps Script dashboard ,“执行”页面。 问题是,日志不会显示在 Apps 脚本 Web 应用程序的仪表板中。当我向 Ap
身份验证后,我将用户权限标识符放入用户 session 中。如何根据用户权限限制对网站某些部分的访问。现在我正在检查页面处理程序中的权限,但如何改进? 是否有任何现有的模板可以做到这一点?能举个例子吗
我打算用 GUI 前端编写一个网络应用程序,大概使用 GTK。 我对 GTK(以及一般的 GUI 编程)完全陌生。我目前的猜测是使用两个线程,一个处理网络,另一个运行 GTK 前端。 这是解决此类问题
我一直在办公室工作,我们有一些数据需要处理几次。我的意思是数百行,有时每行中有非常大的文本 block 。为我们的客户说出食谱,其中包含 ID、名称、类别、食谱本身、时间…… 问题是我们需要经常处理和
当谈到使用官方 web SDK 的 Firestore 缓存时,它是否优化了读取以便仅当文档在上次读取后发生更改时才向服务器“发送”读取请求? (因此每次尝试不会生成 1 次额外的文档读取) 为了详细
我开发了一个使用 Jquery 移动框架的移动网络应用程序...我的主页我添加了一个 div,其中包含一些关于谁浏览我的网站 android 设备的说明... Some instructi
我就是这么想的,不知道是不是我 react 慢了。 通常,我将正在编辑的项目的 ID 存储在隐藏字段中。然后在后端(顺便说一句,我正在使用 PHP/Zend Framework),我用它来确定要编辑的
我有一些应用创意想免费发布(带广告)。我是一名 Web 开发人员,目前不想学习 Java/Objective C。我可以轻松地将想法构建到 HTML 5 在线应用程序中。 有什么原因我不能使用 Pho
我正在编写一个网络套接字应用程序,我打算使用 Azure 网络应用程序将其托管在云上。 Web 套接字是使用相当标准的 Owin 中间件实现的,并且在前 100 秒内功能齐全。这段时间之后,webso
我是一名优秀的程序员,十分优秀!