على بلاك بيري والروبوت: التطبيق الأصلي الاتصال من متصفح الويب؟
-
06-07-2019 - |
سؤال
في اي فون، تطبيق يمكن إقران اسم بروتوكول جديد لنفسه حتى أنه إذا كان يكتب المستخدم في "اسم التطبيق: // الثلاثون" في متصفح الويب تستدعي تطبيق
.هل هذا ممكن مع بلاك بيري أو أندرويد؟
المحلول
لالروبوت إلقاء نظرة على إجابات عن هذا السؤال في:
ووأيضا في الصفحة التالية وخصوصا في قسم "أنواع البيانات" عن الروبوت: مخطط في هذه الصفحة:
http://developer.android.com/guide/topics /intents/intents-filters.html
لالتطبيق الخاص بك من شأنها أن تضع شيء كما يلي في ملف AndroidManifest.xml:
<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:scheme="myapp"></data>
</intent-filter>
نصائح أخرى
لبلاك بيري - نعم، إلى حد ما، أن ننظر في حزمة net.rim.device.api.browser.plugin (JDE 4.0.0 والإصدارات الأحدث). انها تسمح لك لتحديد واجهة رد لنوع MIME معين وغيرها من المعالم.
وأساسا كنت فرعية BrowserContentProvider للإشارة إلى نوع MIME (ق) التي ترغب في تلقي وتسجيل مع BrowserContentProviderRegistery.
وليس لدي الكثير من الخبرة مع هذا - ولكن يبدو أنك قد تكون محدودة لتوفير وظائف جعل العرف - التي قد تكون على ما يرام بالنسبة لك. لست متأكدا من مدى محدودية قدرتك على القيام بأي شيء آخر من شأنه أن يكون - وكنت قد لمحاولة الامور
.لأجهزة بلاك بيري تشغيل 4.0 أو في وقت لاحق (جميع الأجهزة "كرة" ويصل المدى 4.2 على الأقل) التعليمة البرمجية التالية هو كل ما تحتاج:
// Get the default sessionBrowserSession
net.rim.blackberry.api.browser.browserSession = Browser.getDefaultSession();
// now launch the URL
browserSession.displayPage("http://www.BlackBerry.com");
وبما أن هذا هو قطعة رمز قابلة لإعادة الاستخدام جدا أوصي وضعه الدالة التالية:
public static void loadURL(String url)
{
try{
net.rim.blackberry.api.browser.BrowserSession bSession = net.rim.blackberry.api.browser.Browser.getDefaultSession();
bSession.displayPage(url);
bSession.showBrowser();
}
catch (Exception ex){
System.out.println("Error loading url [" + url + "]: " + ex.getMessage());
}
}