اذهب إلى المحتوى

السؤال

نشر (معدل)

لدي تطبيق اندرويد ويب فيو

قمت بعمل زر مشاركة في التطبيقات html api 

لكن عند الضغط على الزر في التطبيق لا يعمل

ويعمل على جميع المتصفحات إلا التطبيق 

أرجوا حل المشكلة

تم التعديل في بواسطة Wael Aljamal
توضيح السؤال

Recommended Posts

  • 0
نشر

في حال كنت تستعملين: 

Navigator.share()

فهو غير مدعوم من Android WebView ويمكنك التأكد من هنا: mozilla- API Navigator share

لكن يمكن استعمال AndroidShareHandler: بتضمين الإعدادت التالية:

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
mWebView.getSettings().setAppCacheEnabled(false);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAllowContentAccess(true);
mWebView.getSettings().setMediaPlaybackRequiresUserGesture(false);

mWebView.addJavascriptInterface(new JavaScriptShareInterface(), "AndroidShareHandler");

ثم:

//Java:

package com.your.package;

import android.webkit.JavascriptInterface;

public class JavaScriptShareInterface {
    @JavascriptInterface
    public void share(String url) {
        // your share action
    }
}

.

//JavaScript:

shareButton.addEventListener('click', () => {
    window.AndroidShareHandler.share('https://stackoverflow.com');
});

وجدت بعض الشروط لتحقيق ذلك:

  • التطبيق يجب أن يكون مخدم على HTTPS
  • عليك مناداته تبعا لحدث من المستخدم
  • للتأكد من دعم الميزة يمكنك استدعاء الشيفرة التالية:
if (navigator.share !== undefined) {
  navigator.share({
    title: <title of your shared data>,
    url  : <link you want to share>
  });
.then(() => ...))
.catch((error) => ...));
      
__________________________
      
      
  document.querySelector('.share-button').addEventListener('click', function() {
    if(navigator.share) {
      navigator.share({
        title: 'mobiForge: Web Share API'
        text: 'Check out this great article about the Web Share API'
        url: 'https://mobiforge.com/design-development/web-share-api'
      })
      .then(() => console.log('Share complete'))
      .error((error) => console.error('Could not share at this time', error))
    }
  });
      
____________________
      
if (navigator.canShare && navigator.canShare({ files: filesArray })) {
  navigator.share({
    files: filesArray,
    title: 'Event Pictures',
    text: 'Checkout our Event Gallery',
  })
  .then(() => console.log('Share was successful.'))
  .catch((error) => console.log('Sharing failed', error));
} else {
  console.log(`Your system doesn't support sharing files.`);
}

توثيق مفيد: web-share

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...