编辑,请在这个问题下面看到我的第二个答案,以便更简洁,更简单地显示问题
我终于打败了我的智慧.我正在使用钛的跨平台应用程序(IOS和Android),并通过休息呼叫连接到salesforce api.我在这个问题上花了3天20个小时,但仍然陷入困境.任何支持将非常感谢!所以让我们潜入.
我想要它做什么: 应用程序启动,检查用户是否已使用oauth2授权给予令牌,如果没有,则为用户提供salesforce登录屏幕.用户输入凭据并点击"允许"按钮,然后我们被重定向回应用程序.
问题: 从上面我想要它做的描述一切都有效,除了粗体的最后一行.一旦用户点击"允许"按钮,我们就会收到此未知的网址方案错误:

代码: 代码几乎由3个不同的重要区域组成
index.js
var Auth = require('AuthService');
Auth.openLogin();
Run Code Online (Sandbox Code Playgroud)
AuthService.js这里只有"openLogin"函数非常重要.
var loginWindow;
module.exports = {
get: function () {
console.log("made it into the auth.get function");
return Ti.App.Properties.getObject('auth');
},
set: function (data) {
Ti.App.Properties.setObject('auth', data);
console.log("auth set function was executed!!!");
},
erase: function () {
Ti.App.Properties.removeProperty('auth');
},
openLogin: function () {
console.log("made it into openLogin!!");
var webview = Titanium.UI.createWebView({url:'https://login.salesforce.com/services/oauth2/authorize' +
'?response_type=token&display=touch' +
'&redirect_uri=testapp://app.open' +
'&client_id=' + Ti.App.Properties.getString('salesforce_client_id')});
//console.log("Webview …Run Code Online (Sandbox Code Playgroud) 任何人都可以告诉我如何从android中的URL打开android应用程序.
我使用以下方法在Android中打开应用程序,但它不适合我.
<data android:scheme="application"/>
Run Code Online (Sandbox Code Playgroud)
我正在传递URL"application:// [RandomText]"的来源
这是打开应用程序的正确方法吗?
如果应用程序安装在设备上,则单击url时启动应用程序.如果app未安装在设备上,请打开Playstore.
<intent-filter>
<data android:scheme="app" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud) 我试图在用户浏览某个网址时启动我的应用程序.我找到了一些例子,它们在清单中都有相同的东西,但它对我不起作用.我已将intent-filter放在Activity和Receiver下.
这是我的清单片段:
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:host="www.urbandictionary.com" android:scheme="http"></data>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
在Activity下,我尝试使用onNewIntent,当它在Receiver下时,我尝试使用onReceiveIntent,两者都使用一个简单的Log.i调用来查看它是否被触发.我没有太多运气.
我有一个特定的网址,我希望从带有意图过滤器的网页视图重定向到我的应用中的特定活动.如何在Android上实现我自己的URI方案描述了如何为浏览器页面执行此操作,但是当通过webview访问该URL时,此相同的intent过滤器不起作用.还有什么需要添加到此intent过滤器以捕获这些webview链接?
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:host="myurl.com/stuff" android:scheme="http"></data>
</intent-filter>`
Run Code Online (Sandbox Code Playgroud) 我希望人们能够通过URL启动Native AIR应用程序.我的AIR应用程序会在其上读取一些参数并打开到正确的状态.
因此,用例将是某人浏览我们的网站,然后点击链接,它将打开本机桌面应用程序到与其链接相关联的正确内容.
我知道iTunes会这样做,其他应用程序支持它.
我知道AIR(非本机)安装程序也支持这一点.
我不知道是否可以使用本机AIR应用程序(.exe或.dmg安装)执行此操作.
编辑:这是桌面.
我需要从浏览器(不仅仅是IE)启动已安装的应用程序.
从这个线程我明白我需要实现异步可插入协议并将应用程序注册到uri方案.
我想检查是否有其他方法来实现它?
在我的场景中,我希望从客户端机器启动现有的应用程序.所以我可以将此应用程序注册到uri方案并使用它.
我唯一担心的是我们必须进行注册表更改的场景(或至少第二种场景).如果注册表设置不存在,这将无法正常工作.
是否有任何其他方式不依赖于注册表设置或任何先决条件.
谢谢.
我已经实现了到我的 android 应用程序的深层链接,除了从 URL 获取查询参数外,一切正常。
我正在按照此链接中的说明获取参数。
网址如下所示:
myapp://path/want?a=123&b=345
Run Code Online (Sandbox Code Playgroud)
我正在做这样的事情:
深层链接:- myapp://path/want?a=first&b=second
Uri uri = getIntent().getData();
String valueOne = uri.getQueryParameter("a");
String valueTwo = uri.getQueryParameter("b");
Run Code Online (Sandbox Code Playgroud)
我得到了“valueOne”的正确值,但“valueTwo”得到了空值,我不知道为什么。
android ×6
java ×2
manifest ×2
activex ×1
air ×1
appcelerator ×1
browser ×1
c# ×1
deep-linking ×1
intentfilter ×1
javascript ×1
launch ×1
rest ×1
salesforce ×1
titanium ×1
url ×1
webview ×1
windows ×1